簡體   English   中英

請求:代理在 people_also_ask 模塊中不起作用

[英]Requests: Proxy not working in people_also_ask module

我正在使用 people_also_ask 模塊從谷歌抓取搜索結果。 模塊本身沒有使用代理的方法,但我在模塊中手動添加了代理。 當我被谷歌屏蔽時,我打印了狀態,它正在打印我的 ip 地址被禁止發送請求。 我在 people_also_ask 模塊中添加的使用代理的代碼是

            proxies = {
                    'http' : "http://username:passward@ip:port"
                        }
            response = SESSION.get(URL, params=params, headers=HEADERS, proxies=proxies)

.我知道這是非法活動,但我想知道為什么主要是為了教育目的。 我認為提取數據的代碼是無關緊要的,所以我添加了簡單的代碼來使用 people_also_ask 模塊發送請求

import people_also_ask as paa
queries = ["how to boil eggs","how to make cake","price of poco f1","price of wooden table","best soap in us","how much tesla worth"]
for query in queries:
    questions = paa.get_related_questions(query ,40)

注意:更改是在 people_also_people 模塊的 google.py 的第一個 function named search() 中進行的

注意:我正在從瀏覽器進行搜索,沒有任何問題。 為什么谷歌允許我使用谷歌但阻止我使用腳本

答案很簡單。 雖然它是代理服務,但不保證 100% 匿名。 當你通過代理服務器發送HTTP GET請求時,你的程序向代理服務器發送的請求是:

GET http://www.whatsmybrowser.org/ HTTP/1.1
Host: www.whatsmybrowser.org
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.10.0

現在,當代理服務器將此請求發送到實際目的地時,它會發送:

GET http://www.whatsmybrowser.org/ HTTP/1.1
Host: www.whatsmybrowser.org
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.10.0
Via: 1.1 naxserver (squid/3.1.8)
X-Forwarded-For: 122.126.64.43
Cache-Control: max-age=18000
Connection: keep-alive

如您所見,它會將您的 IP(在我的示例中為 122.126.64.43)拋出到 HTTP header: X-Forwarded-For 中,因此網站知道該請求是代表 122.126.64.43 發送的

在以下位置閱讀有關此 header 的更多信息: https://www.rfc-editor.org/rfc/rfc7239

如果您想托管自己的 squid 代理服務器並希望禁用設置 X-Forwarded-For header,請閱讀: http://www.squid-cache.org/Doc/config/forwarded_for/

我從以下帖子中復制了這個答案我沒有得到任何信用我發現Python 請求模塊 - 代理不工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM