- A+
所属分类:python爬虫
收集了一堆网络推广的资源网站,却发现很多网站出现访问问题,网站打不开了,域名失效了,那么如果人工去每个区点击打开访问,这就造成了需要做很多的无用功,那么下面的小爬虫,会在很快的时间里,去把这个事情给处理。
知识准备
requests (中文教程:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html)
python基础知识
准备说明
1、将所有的内容组成一个列表内容(原本是把excel里面的所有内容放至在txt文件中,但是后来的逐行读取的时候,发现总是出现问题。当然你也可以参考这篇教程,去处理txt中行文件的内容。python文件处理,处理大量记事本行文内容替换)
2、对抓取回来网站的状态进行判断
小爬虫代码
- import requests #导入requests模块,记得python要安装模块
- urls ='http://www.qiyoutuo.com','http://www.yiwangtui.com','http://www.youkuaitui.com'
- #下面的headers其实是用不着的,因为没有大量的对网站进行访问,所以大部分是触发到反爬机制
- header = {
- 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
- 'Cookie': 'sr1L_b895_saltkey=R5Ezxibx; sr1L_b895_lastvisit=1523144232; pgv_pvi=2550761176; sr1L_b895_onlineusernum=5500; PHPSESSID=b491306023426028a8f0bc4199048bb5; sr1L_b895_sendmail=1; pgv_info=ssi=s7620561099; _fmdata=sjsqJgYYo32PPSvnVYw8qcK4Z59HvTnSGi%2BrkIe8oMKZhKjsTI5cXiV4F1EMV7%2FArZKVI0d%2B177w%2F3b2nQNov8h4%2Bt5Kx8yskegJyhhJuQY%3D; Hm_lvt_b6d3daf28386b7ed61706e7a3ae61ff3=1523147844,1523256981; Hm_lpvt_b6d3daf28386b7ed61706e7a3ae61ff3=1523256981; sr1L_b895_sid=X3bLEl; sr1L_b895_lastact=1523256979%09plugin.php%09'
- }
- #循环输出列表中的每个值
- for each_line in urls:
- #判断响应超时内容
- try:
- response = requests.get(each_line, headers=header, timeout=10) #在试验的过程中,会出现一个情况就是网页超时,所以就用了try, except来做一个调试
- # 判断每一条http状态码
- if response.status_code == 200:
- print(each_line, '网址访问正常')
- else:
- print(each_line, '网址访问错误')
- except:
- print(each_line, '网址响应超时')
小爬虫扩展
在后面把所有网址结果抓取回来后,发现了很多重复信息,
- for i in urls:
- order = urls.count(i)
- if order >=2:
- print('重复网址:', i,'重复次数',order,)
- else:
- pass
又将筛选完成后的代码,进行重复网址的一个提示,对内容进行删除。
后记
在弄这个程序的时候,我就在想我现在来学的成本是不是高过于手动去处理,但是后面想明白了,前面可能会浪费掉一点时间,但后期的熟练会带来一个质的提速。
上述的程序,还可以扩展的内容有:
1、直接读取excel表格的内容
2、直接在excel里面处理好上述的内容,而不是通过手动去做删除
3、对数据的把握,不仅仅是返回200即可,还应该更多的去对网站的返回的title进行判断,是否还是我要的网站类型,如标题包含论坛,现在不包含论坛,那么这个网站的价值就没有了。
所谓的成长,无非就是想有更多的时间来做更多的事。