第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么使用Python和bs4無法抓取某些網(wǎng)頁?

為什么使用Python和bs4無法抓取某些網(wǎng)頁?

白衣染霜花 2023-06-27 16:40:17
我得到這段代碼的目的是獲取 HTML 代碼,并使用 bs4 來抓取它。from urllib.request import urlopen as uReqfrom bs4 import BeautifulSoup as soupmyUrl = '' #Here goes de the webpage.# opening up connection and downloadind the pageuClient = uReq(myUrl) pageHtml = uClient.read()uClient.close()#html parsepageSoup = soup(pageHtml, "html.parser")print(pageSoup)但是,它不起作用,這是終端顯示的錯誤:Traceback (most recent call last):  File "main.py", line 7, in <module>    uClient = uReq(myUrl)  File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 222, in urlopen    return opener.open(url, data, timeout)  File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 531, in open    response = meth(req, response)  File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 640, in http_response    response = self.parent.error(  File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 569, in error    return self._call_chain(*args)  File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 502, in _call_chain    result = func(*args)  File "C:\ProgramData\Anaconda3\lib\urllib\request.py", line 649, in http_error_default    raise HTTPError(req.full_url, code, msg, hdrs, fp)urllib.error.HTTPError: HTTP Error 403: Forbidden
查看完整描述

2 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個贊

您缺少網(wǎng)站可能需要的一些標(biāo)頭。


我建議使用requestspackage 而不是urllib,因?yàn)樗`活。請參閱下面的工作示例:


import requests


url = "https://www.idealista.com/areas/alquiler-viviendas/?shape=%28%28wt_%7BF%60m%7Be%40njvAqoaXjzjFhecJ%7BebIfi%7DL%29%29"


querystring = {"shape":"((wt_{F`m{e@njvAqoaXjzjFhecJ{ebIfi}L))"}


payload = ""

headers = {

    'authority': "www.idealista.com",

    'cache-control': "max-age=0",

    'upgrade-insecure-requests': "1",

    'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36",

    'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",

    'sec-fetch-site': "none",

    'sec-fetch-mode': "navigate",

    'sec-fetch-user': "?1",

    'sec-fetch-dest': "document",

    'accept-language': "en-US,en;q=0.9"

    }


response = requests.request("GET", url, data=payload, headers=headers, params=querystring)


print(response.text)

從那里你可以使用 bs4 解析主體:


pageSoup = soup(response.text, "html.parser")

但是,請注意,您嘗試抓取的網(wǎng)站可能會顯示驗(yàn)證碼,因此您可能需要輪換user-agent標(biāo)頭和 IP 地址。


查看完整回答
反對 回復(fù) 2023-06-27
?
繁華開滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個贊

您收到的 HTTP 403 錯誤意味著 Web 服務(wù)器拒絕了腳本發(fā)出的頁面請求,因?yàn)樗鼪]有訪問該頁面的權(quán)限/憑據(jù)。

我可以從這里訪問您的示例中的頁面,因此最有可能發(fā)生的情況是網(wǎng)絡(luò)服務(wù)器注意到您正在嘗試抓取它并禁止您的 IP 地址請求更多頁面。Web 服務(wù)器通常這樣做是為了防止抓取工具影響其性能。

查看完整回答
反對 回復(fù) 2023-06-27
  • 2 回答
  • 0 關(guān)注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號