[英]web scraping using beautiful soup
我正在用漂亮的湯來刮一個網站。
代碼:
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
my_url = 'https://www.bewakoof.com/biker-t-shirts'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
containers = page_soup.findAll("div", {"class": "productGrid"})
print(len(containers))
我收到下面提到的錯誤。
錯誤
o = containerClass(current_data)
TypeError: __init__() takes 1 positional argument but 2 were given
當我嘗試運行您的部分代碼時,我發現了一個錯誤:
之后我嘗試使用請求:
>>> my_url = 'https://www.bewakoof.com/biker-t-shirts'
>>> import requests as re
>>> r = re.get(my_url)
>>> r
<Response [403]>
你有代碼 403 - 這意味着服務器理解請求但拒絕授權它。 你可以在這里獲得更多信息
大多數情況下,此錯誤與解析器的原始保護有關。 要解決這個問題,請使用以下方法:您必須使用標deceive
您是瀏覽器的站點為此下載請求庫然后創建一個字典
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
您可以用自己的值代替這些值。 最簡單的方法是在瀏覽器中使用網絡分析器(在 Chrome 中按 F12)
然后
import requests as req
url = "url"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
r = req.get(url, headers)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.