精巧使用python爬取西刺代理所有数据 !

user 2019-8-30 176

今天来爬取西刺代理的所有数据,采用 mongoDB 储存。

首先分析网址构造,找出规律,这里我们可以看到,总共有 3639 页。

我们跳转到 3639 页,可以看出网址规律为:https://www.xicidaili.com/nn/xxxx

接着我们分析页面源码,通过正则来匹配出我们想要的数据。

正则调试:

for i in range(1,3640): # 构造 URL 地址 url='https://www.xicidaili.com/nn/'+str(i) # 构造 headers headers={ 'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0' } # 访问该 URL 地址,获取到页面源码 html=requests.get(url,headers=headers).text # 构造正则表达式 _retext=('(.*?)[\s\S]*?(.*?)[\s\S]*?' +'(.*?)[\s\S]*?(.*?)' +'[\s\S]*?(.*?)[\s\S]*?(.*?)' +'[\s\S]*?(.*?)') # 正则匹配出页面中的数据 content=re.findall(_retext,html)

获取到数据以后,我们连接 mongoDB。

# 连接mongoDBclient=pymongo.MongoClient(host='localhost',port=27017)# 打开‘xicidata’,如果不存在则创建db=client['xicidata']# 创建 ‘data’ 表t1=db['data']

接着把数据写入表‘data’中

for j in content: # 通过for,把获取到的数据放到dict中 _data={'IP地址':j[0], 'port':j[1], 'adresse':j[2], 'N':j[3], 'type':j[4], 'cunhuo':j[5], 'time':j[6] } # 把 dict 插入到表中 t1.insert_one(_data) print('writing...')

最后,我们贴出全部代码

import requestsimport reimport pymongofrom time import sleep# 连接mongoDBclient=pymongo.MongoClient(host='localhost',port=27017)# 打开‘xicidata’,如果不存在则创建db=client['xicidata']# 创建 ‘data’ 表t1=db['data']for i in range(1,3640): # 构造 URL 地址 url='https://www.xicidaili.com/nn/'+str(i) # 构造 headers headers={ 'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0' } # 访问该 URL 地址,获取到页面源码 html=requests.get(url,headers=headers).text sleep(5) # 构造正则表达式 _retext=('(.*?)[\s\S]*?(.*?)[\s\S]*?' +'(.*?)[\s\S]*?(.*?)' +'[\s\S]*?(.*?)[\s\S]*?(.*?)' +'[\s\S]*?(.*?)') # 正则匹配出页面中的数据 content=re.findall(_retext,html) # 迭代出数据 for j in content: # 通过for,把获取到的数据放到dict中 _data={'IP地址':j[0], 'port':j[1], 'adresse':j[2], 'N':j[3], 'type':j[4], 'cunhuo':j[5], 'time':j[6] } # 把 dict 插入到表中 t1.insert_one(_data) print('writing...')

通过 pycharm 的插件,我们看到,mongoDB成功创建了库‘xicidata’,该库下成功创建了表‘data’。

数据写入成功!

原文链接:https://www.360kuai.com/detail?url=9b4c65259074ce1ae&cota=4&sign=360_57c3bbd1&refer_scene=so_1



少客联盟- 版权声明 1、本主题所有言论和图片纯属会员个人意见,与少客联盟立场无关。
2、本站所有主题由该帖子作者发表,该帖子作者user少客联盟享有帖子相关版权。
3、少客联盟管理员和版主有权不事先通知发贴者而删除本文。
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者user少客联盟的同意。
5、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任。
6、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
7、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。
8、官方反馈邮箱:chinasuc@chinasuc.cn


上一篇:在 Surface Go安装了Ubuntu Budgie的UEFI 问题
下一篇:讲解Python爬虫原理
所有人都在等你长大 但没有人陪着你长大
最新回复 (0)
    • 少客联盟
      2
        登录 注册 QQ登录(停用)
返回