首頁>技術>

這是一篇記錄自己踩坑的文章

爬取網頁分三大步驟:

分析目標網站著手編寫程式碼儲存資料

下面開始今天的主題。上目標網站(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沒有一個能用的。

後面多尋找幾個網站試試,今天 就先到這裡。我是爬蟲小白,今後也是

15
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • python程式設計作業系統篇知識點詳細梳理(上)