2023年6月29日发(作者:)
python⾃动⽣成采集规则_为采集动态⽹页安装和测试PythonSelenium库1. 引⾔上⼀篇《为编写⽹络爬⾍程序安装Python3.5》中测试⼩例⼦对静态⽹页做了⼀个简单的采集程序,⽽动态⽹页因为需要动态加载js获取数据,所以使⽤urllib直接openurl已经不能满⾜采集的需求了。这⾥我们使⽤selenium库,通过它我们可以很简单的使⽤浏览器来为我们加载动态内容,从⽽获取采集结果。在很多案例中,Selenium与PhantomJS搭配采集动态⽹页内容(可以参看我以前发表的案例⽂章),直接与Firefox或者Chrome搭配,可以应对⼀些更加复杂的采集情形,⽐如,在防爬⽅⾯,直接驱动普通浏览器更不容易被识别成爬⾍。所以,本⽂讲解与Firefox搭配,开发难度并没有增加。Python版本:Python32. 安装selenium库使⽤快捷键win + R或右键开始选择运⾏,输⼊cmd回车,打开命令提⽰符窗⼝,输⼊命令:pip install selenium3. 以亚马逊商品为例的⼀个简单爬⾍3.1 引⼊Gooseeker规则提取器模块(下载地址:), ⾃定义存放⽬录,这⾥为E:引⼊GooSeeker规则提取器,就省去⼿⼯编写XPath或者正则表达式的⿇烦,⽤直观标注的⽅式⾃动⽣成采集规则后,通过API加载和使⽤采集规则。操作过程请参看《1分钟快速⽣成⽤于⽹页内容提取的xslt》。下⾯的代码就是使⽤了API,所以看不到冗长的XPath和正则表达式规则,代码中的API key和抓取规则名可以直接使⽤,这是公共的测试⽤的规则。3.2 在提取器模块同级⽬录下创建⼀个.py后缀⽂件,如这⾥为E:,再以记事本打开,敲⼊代码:# -*- coding: utf-8 -*-# 使⽤gsExtractor类的⽰例程序# 以webdriver驱动Firefox采集亚马逊商品列表# xslt保存在xslt_中# 采集结果保存在中import osimport timefrom lxml import etreefrom selenium import webdriverfrom gooseeker import GsExtractor#驱动⽕狐driver = x()# 访问并读取⽹页内容url = "/b/ref=s9_acss_bw_ct_refTest_ct_1_h?_encoding=UTF8&node=658810051&pf_rd_m=A1AJ19PSB66TGU&pf_rd_s=merchandised-search-5&pf_rd_r=WJANDTHE4NFAYRR4P95K&pf_rd_t=101&pf_rd_p=289436412&pf_rd_i=658414051"#开始加载(url)#等待2秒,更据动态⽹页加载耗时⾃定义(2)# 获取⽹页内容content = _('utf-8')# 获取docmentdoc = (content)# 引⽤提取器bbsExtra = GsExtractor()tFromAPI("31d24931e043e2d5364d03b8ff9cc77e", "亚马逊图书_test") # 设置xslt抓取规则result = t(doc) # 调⽤extract⽅法提取所需内容# 当前⽬录current_path = ()file_path = current_path + "/"# 保存结果open(file_path,"wb").write(result)# 打印出结果print(str(result).encode('gbk','ignore').decode('gbk'))3.3 执⾏,打开命令提⽰窗⼝,进⼊⽂件所在⽬录,输⼊命令 :python 回车注:这⾥是以驱动Firefox为例,所以需要安装Firefox,若未安装可以去往Firefox官⽹下载安装3.4 查看保存结果⽂件,进⼊⽂件所在⽬录,找到名称为result-2的xml⽂件4. 总结安装selenium,由于⽹络原因失败了⼀次,后⾯再次安装时才成功,如果碰到多次超时⽽安装失败,可以尝试连接vpn后再使⽤pip命令安装。下⼀篇《快速制作规则并获取提取器api》将会讲解:快速的将⼀个⽹页结构⽣成规则并通过规则Api⽅式得到需要采集的结果。5. ⽂档修改历史2016-10-25:V1.06. 集搜客GooSeeker开源代码下载源GooSeeker开源Python⽹络爬⾍GitHub源
发布者:admin,转转请注明出处:http://www.yc00.com/web/1687985767a63946.html
评论列表(0条)