【问题标题】:Python Web Scraping not getting all of the HTMLPython Web Scraping 没有得到所有的 HTML
【发布时间】:2020-11-01 23:45:01
【问题描述】:

我对 Python 中的网络抓取非常陌生,并且正在使用 BeautifulSoup 进行解析。获得 HTML 数据后,我将尝试访问“.

”下的某些内容,但如果我在实际页面上单击“检查”,则无法获得所有显示的 HTML网站。在这种情况下我如何访问或者是网站阻止我访问网页上的信息的方式?

如果这没有意义,我要说的是“。”在该 div 中,而不是更多子类别供我查看(当我在网页上单击检查时会看到)。

这是我美丽的汤代码...

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

myurl = 'https://www.coolbet.com/en/sports/incoming-bets'

#open connecting and grab content
uClient = uReq(myurl)
page_html = uClient.read()
uClient.close()

#html parsing
page_soup = soup(page_html, "html.parser")

#grabs each product
containers = page_soup.div.findAll("div", {"class":"sc-iuJeZd iJcGXh"})

print(containers)

它输出 [] 因为 page_soup.div 只输出“.

标签: python html web-scraping beautifulsoup


【解决方案1】:

它似乎是动态内容,因此您使用 urlopen 获得的响应没有您在浏览器中使用 inspect 看到的内容,所以我建议使用 selenium webdriver 来获取该内容..

【讨论】:

    【解决方案2】:

    导航到https://www.coolbet.com/en/sports/incoming-bets 后,您在问题中指定的classname 似乎没有<div>。如果我是对的,您必须经过身份验证才能获得所需的结果(我不是 100% 确定)。 通过python登录(首先获取会话cookie):

    import requests
    
    url = "https://www.coolbet.com/en/login"
    payload = {'username': 'abcdef', 'password': '123456'}
    with requests.session() as s:
    # fetch the login page
    # post to the login form
    r1 = s.get(url)
    r2 = s.post(url, data=payload, cookies=r1.cookies)
    

    变量r2 包含响应(来自上面的代码sn-p)。现在刮页面。每个网站都不允许您将他们的网站作为 robots.txt 文件的一部分进行抓取。但是有些可以通过指定有效的User-Agent 标头来抓取。另外请确保您要抓取的网站允许抓取。

    【讨论】:

      猜你喜欢
      • 2020-07-05
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      相关资源
      最近更新 更多