這是一篇記錄自己踩坑的文章
爬取網頁分三大步驟:
分析目標網站著手編寫程式碼儲存資料下面開始今天的主題。上目標網站(66免費代理)
首先分析網頁,我們要爬取的是ip和埠號
所有資料都存在表格裡
檢視網頁原始碼,發現數據直接在原始碼中,因此開始接下來的操作,提取資料,使用BeautifulSoup解析。
先拿到每一頁上的所有行,再提取每一個單元格中的內容,相信見程式碼
# _*_ coding:utf8 _*_import requestsfrom bs4 import BeautifulSoupfrom multiprocessing import Poolfrom pymongo import MongoClientimport redata = [] # 用來存放爬取到的ip# 爬取單個頁面的ipdef 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沒有一個能用的。
後面多尋找幾個網站試試,今天 就先到這裡。我是爬蟲小白,今後也是
最新評論