目标页面:https://www.xicidaili.com/nn/
长这个样子:
一阵瞎几把分析之后开始写代码:
import requests,re,os
from pprint import pprint
down_dir = os.path.join(os.getcwd(), 'daili_IP/')
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) '
'AppleWebKit/537.36 (KHTML, like Gecko)'
' Chrome/63.0.3239.84 Safari/537.36',
'Referer': 'https://www.xicidaili.com/nt/',
'Connection': 'keep-alive',
'Host': 'www.xicidaili.com'}
url='https://www.xicidaili.com/nn/'
def main():
print('--开始爬取代理IP--')
req=requests.get(url,headers=headers,verify=False)
#print(req.text)
ip=re.findall('<td>(\d*\.\d*\.\d*\.\d*)</td>',req.text)
port=re.findall('<td>(\d*)</td>',req.text)
dic=dict(zip(ip,port))
pprint(dic)
with open(down_dir+'ip.txt','w') as f:
for i in range(len(ip)):
f.write(ip[i]+':'+str(port[i]+'\n'))
print('IP地址保存在:'+down_dir)
if __name__=='__main__':
if not os.path.exists(down_dir):
os.mkdir(down_dir)
main()
心得
1.这网站不加协议头不让访问
2xpath还是用不溜,还得加强练习啊,这次还是用的正则
3.如下图
4.再接着补充下检测ip地址能不能用的功能(思路:挂上地址访问下百度,京东,淘宝之类的网站)