Python爬蟲教程-32-Scrapy 爬蟲架構項目 Settings.py 介紹

來源:互聯網
上載者:User

標籤:1.7   爬取   無限   迴圈   ext   西默   set   page   調用   

本篇介紹項目開發的過程中,對 Setting 檔案的配置和使用

Python爬蟲教程-32-Scrapy 爬蟲架構項目 Settings.py 介紹
  • settings.py 檔案的使用
  • 想要詳細查看 settings.py檔案的更多內容,可查看中文文檔:
    • https://scrapy-chs.readthedocs.io/zh_CN/latest/topics/settings.html
Settings 中配置 USER_AGENTS
  • 在 settings.py 檔案中很多東西預設是給注釋掉的,當我們需要使用的時候,根據注釋的提示,我們編寫我們自己的內容
  • 例如:
  • 我們想設定一個 USER_AGENT 列表
    • 在 settings.py 檔案中找到 USER_AGENT ,拷貝常用的 USER _AGENT 值在它下面
    • 但是 settings 只有一行,就是沒有具體的內容,我們想要使用的話,就需要我們自己去填寫
    • 這就需要我們自己在網上找到常用的瀏覽器 User-Agent 值, 我找到了一些,想要使用直接拷貝就可以
    USER_AGENTS = ["Mozilla/5.0 (compatible; MISE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.5.727; Media Center PC 6.0)","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11","Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0","Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60 ", "Opera/8.0 (Windows NT 5.1; U; en) ","Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50 ", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400) ","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)", ]
  • 直接將這段代碼拷貝到 Settings 檔案中就可以
Settings 中配置 PROXIES
  • 關於 proxy 代理 IP 的詳細介紹,查看:Python爬蟲教程-11-proxy代理IP,隱藏地址(貓眼電影)
  • 擷取代理IP 的網站:
    • www.goubanjia.com
    • www.xicidaili.com
  • 從網站上找可用的 IP,直接拷貝就行,然後在Settings 中拷貝下面這段代碼:
# IP 有效期間一般20天,請自行到上述網站擷取最新 IPPROXIES = [    {‘ip_port‘: ‘177.136.120.174:80‘, ‘user_passwd‘: ‘user1:pass1‘},    {‘ip_port‘: ‘218.60.8.99:3129‘, ‘user_passwd‘: ‘user2:pass2‘},    {‘ip_port‘: ‘206.189.204.62:8080‘, ‘user_passwd‘: ‘user3:pass3‘},    {‘ip_port‘: ‘125.62.26.197:3128‘, ‘user_passwd‘: ‘user4:pass4‘}]
  • 這些類似的設定都是一次設定,就可以重複使用了
關於去重
  • 很多網站都是相同的內容,比如介紹 python 爬蟲的,很多很多,假設爬取到這些的時候,我們就值需要一個,利用 scrapy 的去重功能,防止它對重複網站無限制爬下去
  • 為了防止爬蟲陷入死迴圈,需要去重
    • 即在 spider 中 parse 函數中,返回 Request 的時候加上 dont_filter = False 參數
    myspider(scrapy.Spider): def parse (...):... yield scrapy.Request(url = url, callback = self.parse, dont_filter = False)
  • 如何在 scrapy 使用 selenium
    • 可以放入中介軟體中的 process _request 函數中
    • 在函數中調用 selenium,完成爬取後返回 Response
    class MyMiddleWare(object): def process_request(...):     driver = webdriver.Chrome()     html = driver.page_source     driver.quit()     return HtmlResponse(url = request.url, encoding = ‘utf-8‘, body = html ,request = requeset
  • 下一篇連結:Python爬蟲教程-33-scrapy shell的使用及Scrapy爬蟲架構執行個體
  • 拜拜
  • 本筆記不允許任何個人和組織轉載

Python爬蟲教程-32-Scrapy 爬蟲架構項目 Settings.py 介紹

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.