gargoylesoftware获取alert数据_手把手教你爬取途牛网旅行路线数据,告诉你五一去哪儿玩!...

eb00530102415e6a6b0b9a200ddabf35.gif

79942dbd928682caf94bb4c3d569bca9.png

作者 | timber

本文经授权转自数据森麟(ID: shujusenlin)

五一假期将至,送给大家一个用于途牛网爬取旅行线路线获取的爬虫,预祝大家都度过一个愉快的五一假期。

本爬虫最先是用 Scrapy 写的,很多地方没完善好最终停歇了(定制起来比较难),笔者觉得用 Scrapy 展示出来并不是那么优雅,所以就拆了出来。主要运用到的知识点:PyQuery、Selenium、MySQL、ip_pool、进程,因为代理池是花了钱的,所以文中还是次要说一下方法就好了。免得一些调皮捣蛋的小伙伴瞎整。

bac0a394e820236449e7a6d093e98cc5.png

页面分析

OK!进入正题,首先把该装的库装好,假设你在运行过程中出现 no model name xxxxx,你就 pip install xxxxx。首先来分析一波页面,罗列一下需要抓取的字段:

9e14cd2b8b1315837e6569e602e497b1.png

好的冷饭炒完,如果是新手,可以花个十来分钟去看一下 https://blog.csdn.net/weixin_42946604/article/details/86346615 这个小教程,了解具体怎么分析网页。笔者此次采用了 Selenium+Chrome 来抓取,我把它归在一起了,大家可以浏览一下我这具体的 Chrome 选项参数(自带注释):

8f4fb4032db5695ce39c14b49041d689.png

这里提一下 Selenium 防检测的问题(非必须),如果你抓取过X团外卖的话,你会发现使用 Selenium 直接打开网页去请求的话,会出现这种问题。当然你可以加载电脑上的 Chrome 浏览器路径进来。

ca26344a268e8558c3487cc1b6ff3ac6.png

我采用了遍历 url_list 来抓取多个链接,如果过多了不是那么好看。

b1d8eab69d87ffa7a303b9f8ce0988d3.png

你可以往里面继续加,然后使用 for 循环逐一去请求就好了,接着就是获取到旅游产品的页面数,再把每一页的数据下载下来交给 data_save() 方法处理

b2beae2cce73ca386f9883250921ab60.png

这样是不是一只爬虫就写好了呢!真的上手简单,实用性也高。

8d20f013b2581e48390419dc445d9ac3.png

代理池处理

过程中建议也可以去买,钱不多,少抽一包烟 or 少撩一次妹一个稳定实用的代理池就有了。免费的代理,除了免费啥作用都起不到,而且很多小伙伴测试随机代理的时候,完整获得请求之后返回的结果,开心得不行了,但是不到一段功夫爬虫就嗝屁了。这种情况代理的匿名性也是很重要的。

假设1:你的代理已经在数据库中了,字段类似我这样的话,需要像这样拼接起来:

https://192.168.1.1:8080 

ac2d7b6d0fe43b0956f4c901e4285011.png

我自己是在同一个文件夹下,另外创建了一个 PY 文件用于测试&获取代理

0352fc851a27fc1ed4f5571002d4b16f.png

代理测试就是另一个小爬虫,使用代理去请求,例如你可以去请求这个http://www.ip138.com/(IP 地址查询),请求返回的结果需要做字符编码问题,该网站是使用 GB2312。

8d63c7a13f712645f0c9f02a24d67a81.png

然后只要判断获取的 IP 不是你本机的就行了,我是这样做的: 

2a60062d14d1047264072bee7271ab21.png

我是每次抓取完一个产品就更换,换页不做更换

1d1e7cf1c41b136d410a709a16651b1e.png

JS 加载问题

这也是很常见的,不是所有情况下 bro.get(URL) 让返回结果,所有数据就都出来了,很多情况下数据是要触发事件来产生的,例如《刺激战场的官网》。

1fa28bd68fed50fb25d9fadf6b0d6d31.png

Selenium 的事件操作方法健全,让爬虫更像用户,让站长更分辨不清是真用户假用户,就让你抓狂!

我使用的方法还是挺老套的,直接 copy 我以前文章的代码,贴上来的:

66fe11f907b1aa5b8434e593dd73ee0c.png

d267572098ddd3c016c63e5e2492cbce.png

数据存储

ba469a50d257ae2e295158fb96993142.png

本文使用 PyMySQL,使用完随手关门习惯,“用完记得洗手【手动滑稽表情】”。

5d00fa42cdbcbe1d4cec5e1d8c255312.png

点火,出发!

让爬虫骑上你的大奔,轮子越多,跑得越快(当然要考虑到你电脑的处理能力):

笔者因为穷得叮当响只能开嘉陵摩托车,两轮!

2211fb655ef60347e41d472dedd6a325.png

点火,出发:

Tip:记得遵守交通规则,做个好市民哟

e4c1d6f48ce1181bd7604c4e378c778f.png

另附本文代码:https://pan.baidu.com/s/1TElQPWPG8ltudFP1pTo8bg 提取码: vwns

作者:timber ,在一家电子商务(外贸)公司任职运维,平常工作时我觉得敲命令的样子也很帅,个人博客地址 https://blog.csdn.net/weixin_42946604

a5cfb77d0fc282a11da43d5b5f5a7dd7.png

8da2fa4610418969301852b3202d8d01.png

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

42a2ff6e1d4ea48a2faf2383d992fbea.png

 热 文 推 荐 

☞ 阿里半跪过,任正非差点跳楼,京东被骗光钱:成年人的生活哪有容易二字?

☞ 五日间,Bug 灰飞烟灭

☞ 阿里 P9 级面试官是如何 360° 无死角考察候选人的?

☞ 真の硬核粉丝!小学生也参加杨超越杯,作品优秀!

☞ 当过爱因斯坦助理,参加过曼哈顿计划,他还发明受欢迎的编程语言 | 人物志

☞ 17篇论文入选CVPR 2019,百度AI都在关注什么?(附论文地址)

☞ 强推!盘点阿里巴巴 15 款开发者工具 | 程序员硬核评测

☞ 不改变比特币, 如何扩容?

☞ 她说:为啥程序员都特想要机械键盘?这答案我服!

System.out.println("点个在看吧!");
console.log("点个在看吧!");print("点个在看吧!");printf("点个在看吧!\n");
cout <"点个在看吧!" <Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");alert("点个在看吧!")echo "点个在看吧!"

你点的每个“在看”,我都认真当成了喜欢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值