[英]How can I find out correct div, class, span when scraping a html page
我是Web刮技術的新手。 在閱讀了諸如此類的各種 web 教程后,我嘗試實現Web 抓取。 這些文章是關於亞馬遜 web 抓取和 Netflix web 抓取的文章。 Imdb、爛番茄等還有很多其他教程。 這些教程概述了需要采用哪些屬性,例如class attributes, div tags
等。不同的網站有不同的方法來獲取這些標簽。 然而,這些標簽是 web 抓取的基本元素。 當我按照這些教程進行操作時,我可以實現這些代碼,但是當我嘗試解析上述網站以外的其他網站時,我失敗了。 最近,我嘗試了priceline上的代碼塊。 但我只是搞砸了這么多 html 代碼。
我的價格線代碼
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36", "Accept-Encoding":"gzip, deflate", "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "DNT":"1","Connection":"close", "Upgrade-Insecure-Requests":"1"}
url= 'https://www.priceline.com/relax/in/3000005381/from/20210301/to/20210319/rooms/1?vrid=8848a774a531423bde3ed4ff3486f8bb'
r = requests.get(url, headers=headers)#, proxies=proxies)
content = r.content
soup = BeautifulSoup(content)
name=[]
hotel_div = soup.find_all('div', class_='Box-sc-8h3cds-0.Flex-sc-1ydst80-0.iNmVhl')
for container in hotel_div:
name = d.find('span', attrs={'class':'Box-sc-8h3cds-0 Flex-sc-1ydst80-0 BadgeRow__BadgeContainer-fofgl-0 kmpPcP SummaryHeader__BadgeRowWithMB-m5g1dm-0 dQyPUf SummaryHeader__BadgeRowWithMB-m5g1dm-0 dQyPUf'})
n = name.find_all('img', alt=True)
row={}
if name is not None:
#print(n[0]['alt'])
row['Name'] = n[0]['alt']
else:
row['Name'] = "unknown-product"
print(name)
它返回一個空數組。
任何人都可以建議任何教程或 web 博客來幫助我識別任何網站的正確 html 標簽嗎?
感謝您的幫助
每個 web 開發人員都會選擇以不同的方式命名他們的類和標簽。
要檢查新站點的結構,您可以右鍵單擊要抓取的內容,然后單擊檢查,然后會出現一個選項卡,您可以在其中找到標簽、class 名稱等
(更新)現在它可以工作了:
import re
from bs4 import BeautifulSoup as soup
import requests
from selenium import webdriver
url = 'https://www.priceline.com/relax/in/3000005381/from/20210301/to/20210319/rooms/1?vrid=04bab06455d612983ec0c76e621d7c48'
driver = webdriver.Chrome()
driver.get(url)
html = driver.page_source
soup = soup(html,"lxml")
container = soup.find('a',{'class':'Link-sc-16qjtx7-0 TitleLink__TitleLinkText-vs18lp-0 jtrNVn'}).text
print(container)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.