簡體   English   中英

為什么我無法訪問 html 中的 Table 容器?

[英]Why can I not access the Table containers in the html?

我對 Python 和 Web-Scraping 非常陌生。 我正在嘗試訪問此 web 頁面上所有表中的數據,但我不確定為什么我的代碼不起作用。 也許與 JavaScript 和 python 無法讀取它有關。 我的代碼是:

from urllib.request import urlopen
from bs4 import BeautifulSoup
import requests

headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
res = requests.get("https://www.mcmaster.com/cam-lock-fittings/material~aluminum/", headers=headers)

soup = BeautifulSoup(res.text, 'lxml')

item_containers = soup.findAll("div", {"class":"ItmTblCntnr PrsnttnTbl"})

print(len(item_containers))

任何幫助將不勝感激! 謝謝!

也許您應該嘗試使用 html.parser 和響應的內容屬性:

soup = BeautifulSoup(res.content, "html.parser")

順便說一句,你用的是哪個版本的美湯? 在我的情況下,我必須使用 find_all 而不是 findAll。

我繼續打開了您嘗試使用代碼訪問的網頁。 當您在頁面上看到微調器 animation 時,表明它正在使用 JavaScript。 當您使用 requests 庫發出請求時,它不會執行任何 JavaScript。 它只接收服務器發送的 html。 在這種情況下,您嘗試訪問的表可能不存在於 web 頁面的初始頁面加載中。 因此,你們中的一些人想要 web 抓取這樣的網頁,您將使用一些瀏覽器自動化軟件,例如 selenium。

暫無
暫無

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

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