【问题标题】:Which portion of HTML code use for scraping a website tableHTML 代码的哪一部分用于抓取网站表格
【发布时间】:2019-07-30 13:51:40
【问题描述】:

对于后续网址

https://sports.bwin.com/it/sports#leagueIds=42&sportId=4 我想抓取一个简单的投注报价表。 问题是我不知道要使用哪一部分 od HTML 代码(以及如何使用它)。 这里的表格示例:

我不粘贴 html 代码,因为太长无法粘贴。 这是我的代码,但我总是得到一个空对象

my_url = "https://sports.bwin.com/it/sports#leagueIds=42&sportId=4"

 #opening up connection , grabbing page
 uClient = uReq(my_url)
 page_html = uClient.read()
 uClient.close()


header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36'}
page=requests.get(my_url,headers=header)
page_soup = bs4.BeautifulSoup(page.content, "html.parser")

betting = page_soup.findAll("table" , {"class": "marketboard-event-without-header__markets-list"})

【问题讨论】:

  • 我无法访问该站点(对我来说已被阻止),但我猜该页面是动态的。我会尝试使用硒。你也可以试试 pandas pd.read_html(),好像有 <table> 标签一样,pd.read_html() 在后台使用 beautifulsoup,会为你做艰苦的工作
  • 您是否期望该图像中的所有内容(条形图除外)?还是只是某些部分?

标签: html python-3.x web-scraping beautifulsoup


【解决方案1】:

您尝试获取的数据是动态加载的。为了获取您尝试获取的数据,您需要向页面访问其数据的 api 发出请求,而不是获取页面本身。

你的美汤中没有得到表格的原因是表格不在原始页面源中,而是在客户端加载页面后加载的。

如果您模仿加载数据的请求,您应该能够从这些后续请求中获取数据。

【讨论】:

    猜你喜欢
    • 2019-03-22
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    相关资源
    最近更新 更多