iT邦幫忙

0

如何不被搜尋引擎發現我是爬蟲??爬蟲新手

Itzy 2021-05-23 12:25:131543 瀏覽
  • 分享至 

  • xImage
import requests
url='https://www.google.com.tw/search'
keyword=input('輸入關鍵詞')
try:
    kv={'q':keyword}
    ev={'user-agent':'Mozilla/5.0'}
    r=requests.get(url,params=kv,headers=ev)
    print(r.request.url)
    r.enconding=r.apparent_encoding
    r.raise_for_status()
    print(len(r.text))
except:
    print('爬取失敗')
requests 蠻容易被發現的,可以的話改用selenium + beautifulSOAP
player iT邦大師 1 級 ‧ 2021-05-25 04:10:36 檢舉
user-agent 太假,請找個合適的
http://www.webapps-online.com/online-tools/user-agent-strings/dv
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
haward79
iT邦研究生 2 級 ‧ 2021-05-24 07:07:47

試試看這樣吧:

import requests

url = 'https://www.google.com.tw/search'

keyword = input('輸入關鍵詞:')

# Setup parameters.
kv = {'q': keyword}
ev = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0'}

try:
    # Make a request.
    r = requests.get(url, params=kv, headers=ev)

    # Print request url.
    print(r.request.url)

    # Decode returned text.
    r.enconding = r.apparent_encoding
    r.raise_for_status()

    print('Length :', len(r.text))

    # Output returned text to file.
    with open('output.html', 'w') as fout:
        fout.write(r.text)

except:
    print('爬取失敗')

感覺只是 user-agent 的問題! Mozilla 5.0 似乎太老了吧!

我要發表回答

立即登入回答