python爬蟲十二:middlewares的使用,爬取糗事百科
轉:https://zhuanlan.zhihu.com/p/26701898
1.專案結構
2.user-agent的代理
# -*- coding: utf-8 -*-
'''
自定義scrapy框架的
user-agent頭
從一個被良好維護的user-agent列表裡
隨機篩選合適的user-agent
防止封鎖
'''
from scrapy.contrib.downloadermiddleware.useragent import UserAgentMiddleware
import random
#一個不容易被封鎖的user-agent列表
agents = ['Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv,2.0.1) Gecko/20100101 Firefox/4.0.1',
'Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)']
class RandomUserAgent(UserAgentMiddleware):
def process_request(self,request,spider):
'''
定義下載中介軟體,
必須要寫這個函式,
這是scrapy資料流轉的一個環節
具體可以看文件:
http://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/downloader-middleware.html
'''
ua = random.choice(agents)
request.headers.setdefault('User-agent',ua)
3.ip代理
# -*- coding: utf-8 -*-
'''
從本地檔案proxy.py中
讀取可以用的代理列表
並從中隨機選擇一個代理
供給spider使用
'''
from xiubai.middlewares.proxy import proxies
import random
class RandomProxy(object):
def process_request(self,request,spider):
# 從檔案中隨機選擇一個代理
proxy = random.choice(proxies)
request.meta['proxy'] = 'http://{}'.format(proxy)
呼叫,可以直接從網上爬取免費的代理ip,進行代理點選開啟連結
# -*- coding: utf-8 -*-
'''
通過爬取可用的免費代理,
進行測試可用度之後
篩選獲得的代理
將靜態的資原始檔寫在功能檔案之外
方便及時更新維護。
'''
# 可以自行新增更多代理
proxies = [
'89.36.215.72:1189',
'94.177.203.123:1189',
'110.73.11.227:8123',
'180.183.176.189:8080',
'109.62.247.81:8080',
]
4.settings設定
相關文章
- python爬蟲爬取糗事百科Python爬蟲
- 網路爬蟲——爬取糗事百科笑料段子爬蟲
- python爬取糗事百科Python
- Python爬取糗事百科段子Python
- 網路爬蟲——專案實戰(爬取糗事百科所有文章)爬蟲
- python爬蟲學習(1)-抓取糗事百科笑話Python爬蟲
- python3.6.5 爬取糗事百科,開心一下Python
- python多執行緒爬去糗事百科Python執行緒
- 使用webmagic爬蟲對百度百科進行簡單的爬取Web爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- 使用python爬取百度百科Python
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- python 爬蟲 爬取 learnku 精華文章Python爬蟲
- python爬蟲——爬取大學排名資訊Python爬蟲
- Python使用多程式提高網路爬蟲的爬取速度Python爬蟲
- Python爬蟲之路-chrome在爬蟲中的使用Python爬蟲Chrome
- python爬蟲--爬取鏈家租房資訊Python爬蟲
- Python爬蟲爬取美劇網站Python爬蟲網站
- Python爬蟲教程-13-爬蟲使用cookie爬取登入後的頁面(人人網)(下)Python爬蟲Cookie
- Python爬蟲教程-12-爬蟲使用cookie爬取登入後的頁面(人人網)(上)Python爬蟲Cookie
- Python爬蟲實戰:爬取淘寶的商品資訊Python爬蟲
- Python爬蟲學習(5): 簡單的爬取Python爬蟲
- Python 爬蟲入門 (二) 使用Requests來爬取圖片Python爬蟲
- Python爬蟲之路-selenium在爬蟲中的使用Python爬蟲
- 【python爬蟲】python爬蟲demoPython爬蟲
- python 爬蟲 1 爬取酷狗音樂Python爬蟲
- Python爬蟲爬取淘寶,京東商品資訊Python爬蟲
- 小白學 Python 爬蟲(25):爬取股票資訊Python爬蟲
- python網路爬蟲--爬取淘寶聯盟Python爬蟲
- Python實現微博爬蟲,爬取新浪微博Python爬蟲
- Python爬蟲—爬取某網站圖片Python爬蟲網站
- 爬蟲——爬取貴陽房價(Python實現)爬蟲Python
- 【Python爬蟲】正則爬取趕集網Python爬蟲
- 利用Python爬蟲爬取天氣資料Python爬蟲
- Python爬蟲入門教程 50-100 Python3爬蟲爬取VIP視訊-Python爬蟲6操作Python爬蟲
- Python爬蟲實戰-使用Scrapy框架爬取土巴兔(一)Python爬蟲框架
- 爬蟲爬取微信小程式爬蟲微信小程式
- 爬蟲之股票定向爬取爬蟲