python爬蟲被檢測頻繁登入解決方法

2021-10-02 04:56:50 字數 2325 閱讀 9205

下方是對靜態網頁爬取的python**(符合爬蟲協議規定),注釋闡釋了我的思路以及碰到的一些問題

import requests

from lxml import etree

import time

import random

url =

''headers =

# 設定**池 為防止網頁出現 頻繁登入 而不能獲取部分原始碼的情況

procxy =[,

,,,]

#隨機獲取**

#返回請求

10)# time.sleep(random) 之前出現頻繁登入無法獲得部分原始碼的情況: 1.未設定**2.響應時間一直相同,被檢測為機械人 結果是1影響的

#對html自動修正(如缺失節點可以自動填上),並構造乙個xpath物件

html = etree.html(response.text)

# print(response.text)

#xpath物件可以獲取節點

com_name = html.xpath(

'//div[@class = "line_com"]/a[@class = "com_name"]/text()'

)com_job = html.xpath(

'//div[@class = "line_cate"]/a/text()'

)# print(type(com_name),com_name) 可以發現com_name的型別是個list,com_job同理 那麼我們可以進行遍歷列印或者儲存至文件及其他介質中

for i in

range(0

,len

(com_name)):

print

(str

(i)+

" "

+com_name[i]

+" "

+com_job[i]

)for j in

range(2

,67):

#發現規律之後 對網頁進行遍歷 range的範圍是[2,67),左閉右開 剩下的就是按上面的邏輯來了

)

1.西刺**(**中**池中的**是從該**得到的,當然還有其他免費**

的**,這些共享**往往壽命較短,指不定哪天我**中的失效了,可以嘗試換下**

2.對網頁的遍歷中 range(2,67)這是一段固定遍歷,若網頁內容(此網頁內容是公司)增加或減少,該如何調節這個遍歷數呢

3.其實**中的 time.sleep(random) 只是延長了**響應到下一步的過程,而不是讓**響應的時間隨機,也就是說**中的邏輯和我注釋的邏輯(響應時間一直相同,被檢測為機械人)是不一致的,希望別對大家造成影響

4.在對網頁遍歷的**塊會涉及到全域性變數和區域性變數的問題,因為這段**我複製了上面那段,很多變數name是一致的,像這種做法有時候會存在全域性變數引用問題

5.對可能出現異常的**塊加上except,對**的維護性會更好

這段**展示的只是一種思路,它在我發布這段**的時候還是可行的,或許在若干時間後,由於反爬機制,**壽命

爬永遠可行,要想在這高速發展的網際網路大環境下讓自己的爬蟲不被淘汰,更重要的是對反爬的理解,與時俱進,一步步突破

自己,才不會被大潮流所淹沒。

python爬蟲免登入 爬蟲使用cookie免登陸

由於前程無憂上崗位投遞記錄只保留兩個月,想記錄下。程式 放在github 對於怎麼獲取登陸後的頁面,有兩種思路使用賬號,密碼登陸,如果該 登陸系統簡單的話,沒有驗證碼啥的,有驗證碼的話,可以使用圖形識別庫 使用cookie繞過登陸頁面cookie cookie 複數形態cookies 中文名稱為 小...

python爬蟲模擬登入網頁 登入wish

wish登入頁面 是js寫的,在上面找登入鏈結很麻煩,直接故意寫錯登入賬號和密碼 獲得登入鏈結 上 import requests url1 url2 header 8或者不指定。data 獲得post請求的session物件 sesssion requests.session sesssion.p...

python 爬蟲 登入知乎

pytho3.4 requests.get request.post requests.session 1 通過瀏覽器f12開發者工具,找到登入時提交的表單以及請求的url 注意請求的url不是瀏覽器網域名稱框的url 因為知乎改了,現在不需要驗證碼了,所以中少了驗證碼的引數,不過 裡是有的 2 設...