内容简介:作者 | timber
作者 | timber
本文经授权转自数据森麟(ID: shujusenlin)
责编 | 胡巍巍
五一假期还有两天,短途旅行依然来得及。
这里送给大家一个用于途牛网爬取旅行线路线获取的爬虫,预祝大家都度过一个愉快的五一假期。
本爬虫最先是用 Scrapy 写的,很多地方没完善好最终停歇了(定制起来比较难),笔者觉得用 Scrapy 展示出来并不是那么优雅,所以就拆了出来。主要运用到的知识点:PyQuery、Selenium、 MySQL 、ip_pool、进程,因为代理池是花了钱的,所以文中还是次要说一下方法就好了。免得一些调皮捣蛋的小伙伴瞎整。
页面分析
OK!进入正题,首先把该装的库装好,假设你在运行过程中出现 no model name xxxxx,你就 pip install xxxxx。首先来分析一波页面,罗列一下需要抓取的字段:
好的冷饭炒完,如果是新手,可以花个十来分钟去看一下 https://blog.csdn.net/weixin_42946604/article/details/86346615 这个小教程,了解具体怎么分析网页。笔者此次采用了 Selenium+Chrome 来抓取,我把它归在一起了,大家可以浏览一下我这具体的 Chrome 选项参数(自带注释):
这里提一下 Selenium 防检测的问题(非必须),如果你抓取过X团外卖的话,你会发现使用 Selenium 直接打开网页去请求的话,会出现这种问题。当然你可以加载电脑上的 Chrome 浏览器路径进来。
我采用了遍历 url_list 来抓取多个链接,如果过多了不是那么好看。
你可以往里面继续加,然后使用 for 循环逐一去请求就好了,接着就是获取到旅游产品的页面数,再把每一页的数据下载下来交给 data_save() 方法处理
这样是不是一只爬虫就写好了呢!真的上手简单,实用性也高。
代理池处理
过程中建议也可以去买,钱不多,少抽一包烟 or 少撩一次妹一个稳定实用的代理池就有了。免费的代理,除了免费啥作用 都起不到 ,而且很多小伙伴测试随机代理的时候,完整获得请求之后返回的结果,开心得不行了,但是不到一段功夫爬虫就嗝屁了。这种情况代理的匿名性也是很重要的。
假设1:你的代理已经在数据库中了,字段类似我这样的话,需要像这样拼接起来:
https://192.168.1.1:8080
我自己是在同一个文件夹下,另外创建了一个 PY 文件用于测试&获取代理
代理测试就是另一个小爬虫,使用代理去请求,例如你可以去请求这个http://www.ip138.com/(IP 地址查询),请求返回的结果需要做字符编码问题,该网站是使用 GB2312。
然后只要判断获取的 IP 不是你本机的就行了,我是这样做的:
我是每次抓取完一个产品就更换,换页不做更换。
JS 加载问题
这也是很常见的,不是所有情况下 bro.get(URL) 让返回结果,所有数据就都出来了,很多情况下数据是要触发事件来产生的,例如《刺激战场的官网》。
Selenium 的事件操作方法健全,让爬虫更像用户,让站长更分辨不清是真用户假用户,就让你抓狂!
我使用的方法还是挺老套的,直接 copy 我以前文章的代码,贴上来的:
数据存储
本文使用 PyMySQL,使用完随手关门习惯,“用完记得洗手【手动滑稽表情】”。
点火,出发!
让爬虫骑上你的大奔,轮子越多,跑得越快(当然要考虑到你电脑 的 处理能力) :
笔者因为穷得叮当响只能开嘉陵摩托车,两轮!
点火,出发:
Tip:记得遵守交通规则,做个好市民哟
另附本文代码:https://pan.baidu.com/s/1TElQPWPG8ltudFP1pTo8bg 提取码: vwns
作者:timber ,在一家电子商务(外贸)公司任职运维,平常工作时我觉得敲命令的样子也很帅,个人博客地址 https://blog.csdn.net/weixin_42946604
【END】
作为码一代,想教码二代却无从下手:
听说少儿编程很火,可它有哪些好处呢?
孩子多大开始学习比较好呢?又该如何学习呢?
最新的编程教育政策又有哪些呢?
下面给大家介绍CSDN新成员: 极客宝宝(ID: geek_baby)
戳他了解更多↓↓↓
热 文推 荐
☞41 岁蚂蚁金服总裁助理去世; 华为首款 5G 手机欧洲上市;库克首谈 5G iPhone | 极客头条
☞ 阿里半跪过,任正非差点跳楼,京东被骗光钱:成年人的生活哪有容易二字?
☞强推!盘点阿里巴巴 15 款开发者工具 | 程序员硬核评测
☞17篇论文入选CVPR 2019,百度AI都在关注什么?(附论文地址)
System.out.println("点个在看吧!"); console.log("点个在看吧!"); print("点个在看吧!"); printf("点个在看吧!\n"); cout << "点个在看吧!" << endl; Console.WriteLine("点个在看吧!"); Response.Write("点个在看吧!"); alert("点个在看吧!") echo "点个在看吧!"
点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。
你点的每个“在看”,我都认真当成了喜欢
以上所述就是小编给大家介绍的《假期还剩 2 天,Python 爬取途牛网,揭秘哪里人少景美!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
文明之光(第四册)
吴军 / 人民邮电出版社 / 2017-3 / 69.00元
计算机科学家吴军博士继创作《浪潮之巅》、《数学之美》之后,将视角拉回到人类文明史,以他独具的观点从对人类文明产生了重大影响却在过去被忽略的历史故事里,选择了有意思的几十个片段特写,有机地展现了一幅人类文明发展的画卷。《文明之光》系列创作历经整整四年,本书为其第四卷。 作者所选的创作素材来自于十几年来在世界各地的所见所闻,对其内容都有着深刻的体会和认识。《文明之光》系列第四册每个章节依然相对独......一起来看看 《文明之光(第四册)》 这本书的介绍吧!