快捷搜索:  汽车  科技

代理ip的方法是反爬虫的主要手段(搭建自己的代理池)

代理ip的方法是反爬虫的主要手段(搭建自己的代理池)后面多寻找几个网站试试,今天 就先到这里。我是爬虫小白,今后也是# _*_ coding:utf8 _*_ import requests from bs4 import BeautifulSoup from multiprocessing import Pool from pymongo import MongoClient import re data = [] # 用来存放爬取到的ip # 爬取单个页面的ip def getip(page): db = MongoClient('127.0.0.1' 27017).test # url = "https://www.89ip.cn/index_%s.html" % page # 该代理检测不可用 url = 'http://www.66ip.cn/%s.htm

这是一篇记录自己踩坑的文章

爬取网页分三大步骤:

  1. 分析目标网站
  2. 着手编写代码
  3. 保存数据

下面开始今天的主题。上目标网站(66免费代理)

首先分析网页,我们要爬取的是ip和端口号

代理ip的方法是反爬虫的主要手段(搭建自己的代理池)(1)

所有数据都存在表格里

查看网页源码,发现数据直接在源码中,因此开始接下来的操作,提取数据,使用BeautifulSoup解析。

先拿到每一页上的所有行,再提取每一个单元格中的内容,相信见代码

# _*_ coding:utf8 _*_ import requests from bs4 import BeautifulSoup from multiprocessing import Pool from pymongo import MongoClient import re data = [] # 用来存放爬取到的ip # 爬取单个页面的ip def getip(page): db = MongoClient('127.0.0.1' 27017).test # url = "https://www.89ip.cn/index_%s.html" % page # 该代理检测不可用 url = 'http://www.66ip.cn/%s.html' % page headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36\ (KHTML like Gecko) Chrome/87.0.4280.88 Safari/537.36' 'Referer': 'http://www.66ip.cn/index.html' } resp = requests.get(url=url headers=headers timeout=2) soup = BeautifulSoup(resp.text 'lxml') for item in soup.find_all('tr')[2:]: try: ip = item.find_all('td')[0].get_text().strip() port = item.find_all('td')[1].get_text().strip() data.append({'ip': '{}:{}'.format(ip port) 'verify': False}) if len(data) == 0: print("结束") print(data) db.ippool.insert_many(data) # print(port) except: continue # 发生异常的时候跳过此次爬取,继续下一轮

经过一番操作,成功获取数据,后面就是比较糟糕的事情了。我们爬取代理ip的主要目的是什么,当然是使用他们呀。在我校验之后,一万多个代理ip没有一个能用的。[流泪][笑哭]

后面多寻找几个网站试试,今天 就先到这里。我是爬虫小白,今后也是

猜您喜欢: