python从入门到放弃篇25(lxml.etree库,urllib.request库,xpath方法,for循环构造xpath路径)爬取一刀999页面,并保存数据。
今天,我研究了一天的爬虫构造方法,自己看了一下书上有讲url的构造,我自己突然想到,url可以构造,那么xpath路径也可以构造啊?试验了一下,还真的可以,所以,跟大家分享一下。现在感觉很舒服,因为又学到新的东西了。案例网址:http://tggg.37.com/?uid=2743062&bd_vid=12353914052143466403第一步,我们还是照常的导入我们可能需要使用的各种
今天,我研究了一天的爬虫构造方法,自己看了一下书上有讲url的构造,我自己突然想到,url可以构造,那么xpath路径也可以构造啊?试验了一下,还真的可以,所以,跟大家分享一下。现在感觉很舒服,因为又学到新的东西了。
案例网址:http://tggg.37.com/?uid=2743062&bd_vid=12353914052143466403
第一步,我们还是照常的导入我们可能需要使用的各种库。
第二步,将url搭建好,并设置好请求报头。
第三步,将设置好的url和请求报头headers参数赋值给变量request,再将变量request传递给urllib.request.urlopen()函数,再赋值给响应变量response,接着,对response响应变量进行读取和解码,最后,建立选择器模型,用lxml的etree库的HTML函数。所以,如下图:
第四步,我们观察一下网页结构。
中间的结构省略,大家要是有兴趣也可以挨个查看…
所以,通过观察,我们发现可以通过构建标签a的属性data-type值从111变到118,也就是说,我们从点击第一个链接的标题开始到最后一个链接的标题,这个过程,它的属性值会逐渐规律性递增。因此,我们可以根据这个规律来构造xpath路径,我这里使用的for循环来构造。但是,我并没有根据属性值构造xpath路径,而是复制了xpath的绝对路径,观察它的绝对路径,然后构造的。不过,根据属性值构造跟我的这个方法是异曲同工。所以有:
这样就可以,既将文本爬出来,而且又输出文本对应的链接地址了。结果如下图:
其他的文本和对应链接的提取,也可以使用这种构造法,来进行标题和链接的提取。
接下来,我们就是要将数据存储到本地计算机中了,所以,代码修改如下图:
结果,会自动在指定路径下面生成TXT文件,在pycharm编辑器打开文件,Oh!my雷迪嘎嘎!!what’s happened?
应该是,写入文件没有编码,所以就。。修改代码后,
再来一次,我就不信了!运行后:
打开文件:
OK,好了,一切问题解决了,很nice!
最后,感谢大家前来阅读鄙人的文章,不胜感激,若文中有不妥之处,还望指出和海涵。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)