爬蟲程式十分鐘入門

liuxuhui發表於2021-09-09

經常有前端的程式設計師被公司臨時要求做資料收集,針對某專案進行分析評估。如何才能快速的實現資料採集目標,同時減少程式的研發和運維工作,現在給大家推薦一個基本爬蟲策略+爬蟲代理IP的方案,從搭建專案到實現資料採集,10分鐘時間就夠啦,主要分成三個步驟:

1、選擇適合的語言框架,一般建議python或java這類物件導向封裝較多的語言,根據熟悉程度選擇適合的類庫使用,例如python下的requests、scrapy或java下的HttpClient、JSoup等。

2、爬蟲程式對http的header新增User-Agent,避免被網站反爬統計。除非是訪問網站或APP專用資料api介面,正常的HTTP請求都需要進行ua(User-Agent)最佳化,因為ua是瀏覽器標識,如果http請求沒有ua,或ua太少,都會被網站運維統計異常的,ua越豐富分佈就越真實。

3、選擇適合的爬蟲代理,直接參考demo配置使用即可,以市面上典型的一款爬蟲代理產品為例,只需要檢視對方的demo,提取代理資訊,將目標網站修改成需要採集資料url即可。

以python示例如下

#! -- encoding:utf-8 --
import requests
import random

# 要訪問的目標頁面
targetUrl = ""

# 要訪問的目標HTTPS頁面
# targetUrl = ""

# 代理伺服器(產品官網 ) 需要開訂單提取新代理資訊更新
proxyHost = "t.16yun.cn"
proxyPort = "31111"

# 代理驗證資訊 需要開訂單提取新代理資訊更新
proxyUser = "username"
proxyPass = "password"

proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
    "host" : proxyHost,
    "port" : proxyPort,
    "user" : proxyUser,
    "pass" : proxyPass,
}

# 設定 http和https訪問都是用HTTP代理
proxies = {
    "http"  : proxyMeta,
    "https" : proxyMeta,
}

#  設定IP切換頭
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}

resp = requests.get(targetUrl, proxies=proxies, headers=headers)

print resp.status_code
print resp.text


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756/viewspace-2826647/,如需轉載,請註明出處,否則將追究法律責任。

相關文章