爬蟲程序十分鐘入門

經常有前端的程序員被公司臨時要求做數據收集,針對某項目進行分析評估。如何才能快速的實現數據採集目標,同時減少程序的研發和運維工作,現在給大家推薦一個基本爬蟲策略+爬蟲代理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 = "http://httpbin.org/ip"

# 要訪問的目標HTTPS頁面
# targetUrl = "https://httpbin.org/ip"

# 代理服務器(產品官網 www.16yun.cn) 需要開訂單提取新代理信息更新
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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章