这个爬虫是你五一假期所需要的!

640?wx_fmt=gif

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

640?wx_fmt=jpeg

前言

本人也是一名python爱好者,接触有一年多了,主要学习还是python后端,近期在打算flask做一个小型的API商城,有兴趣的可以聊聊哦!因为受数据森麟大咖影响,看了很多github&博客也算是爬虫的一个little role。

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

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

页面分析

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

640?wx_fmt=png

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

640?wx_fmt=png

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

640?wx_fmt=png

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

 

640?wx_fmt=png

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

640?wx_fmt=png

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

代理池处理

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

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

https://192.168.1.1:8080 

640?wx_fmt=png

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

 

640?wx_fmt=png

 

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

640?wx_fmt=png

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

640?wx_fmt=png

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

JS加载问题

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

 

640?wx_fmt=png

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

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

 

640?wx_fmt=png

数据存储

640?wx_fmt=png

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

点火,出发!

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

小作者因为穷的叮当响只能开嘉陵摩托车,两轮!

 

640?wx_fmt=png

点火,出发:(Tip:记得遵守交通规则,做个好市民哟)

640?wx_fmt=png

后台回复“途牛”可以获取本文代码,

万水千山总是情,点个「在看」行不行。

留言打卡 DAY 27

今日的留言话题是聊聊你的五一假期安排,关于留言打卡的规则可以参考,请按照昵称+天数(请以自己实际连续打卡的天数为准,如day1 or day2 or day3)+ 留言内容(不少于15字)的方式留言

◆ ◆ ◆  ◆ ◆

长按二维码关注我们


数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:

猜你喜欢

点个“在看”,支持森麟原创  ☟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值