日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python怎么暂停爬虫_python Python爬虫防封杀方法集合

發布時間:2025/3/15 python 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python怎么暂停爬虫_python Python爬虫防封杀方法集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

在爬取的過程中難免發生ip被封和403錯誤等等,這都是網站檢測出你是爬蟲而進行反爬措施,這里自己總結下如何避免

方法1:設置等待時間

有一些網站的防范措施可能會因為你快速提交表單而把你當做機器人爬蟲,比如說以非常人的速度下載圖片,登錄網站,爬取信息。

常見的設置等待時間有兩種,一種是顯性等待時間(強制停幾秒),一種是隱性等待時間(看具體情況,比如根據元素加載完成需要時間而等待)

1.顯性等待時間

import time#導入包

time.sleep(3)#設置時間間隔為3秒

而且盡量在夜深人靜的時候進行數據的采集,切記采集不要太快,不然容易讓網站識別出你個非人類

2.隱式等待

這里用到的主要語句,以wait.until()為例

比如說形式如下

wait1.until(lambda driver: driver.find_element_by_xpath("//div[@id='link-report']/span"))

上面的語句就是在等待頁面元素加載全部完成后才進行下一步操作,因為爬蟲速度太快,導致一些元素沒有被加載完全就進行下一步操作而導致沒有查找到元素或者被網站認為是機器人在進行瀏覽。

方法2:修改請求頭

識別你是機器人還是人類瀏覽器瀏覽的重要依據就是User-Agent,比如人類用瀏覽器瀏覽就會使這個樣子的User-Agent:'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'

這里拿urllib2來說,默認的User-Agent是Python-urllib2/2.7,所以要進行修改。

import urllib2

req = urllib2.Request(url)

#多了以下一這一步而已

req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')

response = urllib2.urlopen(req)

方法3:采用代理ip

當自己的ip被網站封了之后,只能采取換代理ip的方式進行爬取,所以,我建議,每次爬取的時候盡量用代理來爬,封了代理,還有代理,無窮無盡啊,可別拿代理去黑學校網站啊,你懂得0.0

廢話不多說,扔上代理的實現程序

# -*- coding: utf-8 -*-

import urllib2

url = "http://www.ip181.com/"

proxy_support = urllib2.ProxyHandler({'http':'121.40.108.76'})

#參數是一個字典{'類型':'代理ip:端口號'}

opener = urllib2.build_opener(proxy_support)

#定制opener

opener.add_handler=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')]

#add_handler給加上偽裝

urllib2.install_opener(opener)

response = urllib2.urlopen(url)

print response.read().decode('gbk')

這里采用的測試網站是http://www.ip181.com,?它可以檢測出你使用的ip是什么,正好來檢驗自己是否用代理ip成功

使用代理ip訪問

從結果中可以看出,檢測出了代理ip,正是我自己加上的ip值,此乃最后一招,當自己ip被封后,采用代理ip進行訪問。

要是一個代理ip掛了怎么辦,那你可以做個ip池啊,就是把一堆代理ip放在一起,每次運行時從ip池挑一個代理ip當做訪問ip就可以了!

采用ip池的方法~舉個栗子

# -*- coding: utf-8 -*-

import urllib2

import random

ip_list=['119.6.136.122','114.106.77.14']

#使用一組ip調用random函數來隨機使用其中一個ip

url = "http://www.ip181.com/"

proxy_support = urllib2.ProxyHandler({'http':random.choice(ip_list)})

#參數是一個字典{'類型':'代理ip:端口號'}

opener = urllib2.build_opener(proxy_support)

#定制opener

opener.add_handler=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')]

#add_handler給加上偽裝

urllib2.install_opener(opener)

response = urllib2.urlopen(url)

print response.read().decode('gbk')

使用ip池抽取ip訪問

采用代理ip池的方法,可以看出,檢測出的ip是ip池中的一個,對吧,很簡單對不對,那么怎么來創建ip池呢,也很簡單,用動態或者靜態方法隨便找個匿名ip的網站進行代理ip爬取,然后清洗一下ip,把能用的(測試一個簡單的返回狀態網頁)留下來寫到列表里,然后就可以形成ip池啦,最后當某個ip不能用了,那就從池中剔除!ip池制作,建議參考@七夜的故事--代理ip池

方法4:避開不可見元素陷阱

自己爬著爬著就把隱藏元素都爬出來了,你說你自己是不是爬蟲吧,這是網站給爬蟲的陷阱,只要發現,立馬封IP,所以請查看一下元素再進行爬取!

比如說這個網址,一個簡單的登錄頁面,從審查元素中我們可以看到有一些元素是不可見的!(例子抄自python網絡數據采集第12章)

上述中可以看到隱藏的value和不顯示的url

查找出陷阱url和不可見的value代碼

from selenium import webdriver

#from selenium.webdriver.remote.webelement import WebElement

url = 'http://pythonscraping.com/pages/itsatrap.html'

driver = webdriver.PhantomJS(executable_path="phantomjs.exe")

driver.get(url)

links = driver.find_elements_by_tag_name("a")

for link in links:

if not link.is_displayed():

print "the link "+link.get_attribute("href")+"is a trap"

fields = driver.find_elements_by_tag_name("input")

for field in fields:

if not field.is_displayed():

print "do not change value of "+field.get_attribute("name")

結果就是

the link http://pythonscraping.com/dontgohereis a trap

do not change value of phone

do not change value of email

方法5:采用分布式爬取

分布式爬取,針對比較大型爬蟲系統,實現步驟如下所示

1.基本的http抓取工具,如scrapy

2.避免重復抓取網頁,如Bloom Filter

3.維護一個所有集群機器能夠有效分享的分布式隊列

4.將分布式隊列和Scrapy結合

5.后續處理,網頁析取(python-goose),存儲(Mongodb)

(知乎上看到的補充一下)

采用Scrapy的例子,請參考這里基于Scrapy對Dmoz進行抓取

方法6:進行模擬登陸

這個就太多了,一般用Selenium,可以結合Firefox或者是無頭瀏覽器PhantomJS,這個做的東西比較多了,如果感興趣,可以點擊這些,進行查看,方法,代碼,解析,一應俱全

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的python怎么暂停爬虫_python Python爬虫防封杀方法集合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩高清免费观看 | 精品久久久一区 | 亚洲精品视频在线看 | 日本女人hd | 一本一道精品欧美中文字幕 | 人人草人人澡 | 97综合 | 丰满熟女人妻一区二区三 | 少妇xxxx69| 原创露脸88av| 激情视频91| 中国妇女做爰视频 | 影音先锋在线观看视频 | 午夜黄色网址 | 草草地址线路①屁屁影院成人 | 天堂男人在线 | 成人av网址在线 | 国产综合视频一区二区 | 天堂中文视频在线 | 亚洲天堂成人网 | 在线观看黄av | 国产视频在线观看一区二区 | 青草一区| 97高清国语自产拍 | 王者后宫yin肉h文催眠 | 精品国产乱码久久久久久免费 | 欧美三级三级三级爽爽爽 | 欧美精品激情视频 | 视频在线不卡 | 黄片毛片在线免费观看 | 青青草久久久 | 国产113页 | 国产黄av| 在线播放不卡 | 精品自拍视频 | www黄色在线观看 | 姐姐的秘密韩剧免费观看全集中文 | 黄色同人网站 | 隔壁人妻偷人bd中字 | 光棍影院一区二区 | 亚洲成a人片在线www | 国产精品第六页 | 欧美丰满艳妇bbwbbw | 土耳其xxxx性hd极品 | 成人黄色免费看 | 欧美成人三级伦在线观看 | 活大器粗np高h一女多夫 | 琪琪午夜伦理影院7777 | 男女交性视频 | 精品色图 | 欧美一级免费 | 亚洲一区有码 | 国产91精品久久久久久久 | 97免费在线观看视频 | 壮汉被书生c到合不拢腿 | 抽插丰满内射高潮视频 | 在线不卡av | 久草手机在线 | 久久久久久久国产精品视频 | a毛片在线免费观看 | 亚洲精品乱码久久久久久不卡 | 少妇精品偷拍高潮白浆 | 深夜免费福利 | 日韩欧美一区二区区 | 亚洲涩视频 | 精品视频大全 | 怡红院成永久免费人全部视频 | 男生坤坤放进女生坤坤里 | 综合色播 | 久久免费一区 | 亚洲手机视频 | 少妇做爰xxxⅹ性视频 | 午夜av中文字幕 | 天天摸夜夜添狠狠添婷婷 | 91在线一区二区 | 波多野吉衣中文字幕 | 日韩中文字幕观看 | 精品福利片 | 国产福利一区二区三区在线观看 | 善良的老师伦理bd中字 | 黄色肉肉视频 | 国产高清在线观看 | 日韩伊人久久 | 亚洲深爱 | 亚洲欧美少妇 | caoporn国产 | 日本99视频 | 亚洲v欧美v| 国产美女无遮挡永久免费观看 | 黄色小视频免费网站 | 久久不射网站 | 亚洲黄色av网站 | 无码人妻精品一区二区蜜桃色欲 | 免费三级黄 | 黄色片网站在线观看 | 日韩欧美成人免费视频 | 欧美人与性动交α欧美片 | 国产精品自在线 | 欧美激情视频在线 |