我正在尝试刮掉本网站的一些表。当我执行请求时,返回的html与浏览器中的html不同。
我试着检查browser Network选项卡,看看是否有任何json响应填充了信息,但找不到任何信息。我意识到请求返回的html是存在于Network选项卡中的html文档中(在浏览器检查器中),正如我所说,与元素选项卡中显示的html不同(其中一个显示了我想要的完整html代码)。
我知道我错过了一些东西,如果你能解释一下这个网站是如何运作的,我将不胜感激:
这是我的密码
url = 'https://coriolis.io/outfit/fer_de_lance?code=A4pktfFalfdpsff30x27272727040404040404B22b2b27m1m1.AwRj4yvI.Aw18WQ%3D%3D.H4sIAAAAAAAAA42SvS9DYRTGTz%2B1vW1v79VWBfXRi8TQNLYabKIDibGryWLoQMQi7AYRwWAwGA1GQ2OyNjEYDCL%2BCBN1jueIvmmbSu5N7pMn7%2Fm9zz335BAPEdF3BNI%2BhVgnAaLUYZLI2YNz7y0irxkkkgAvG%2FIAEtv4ErHfy0T5uzDIJwRJkPMG2oHY3qdItggyd20TFZQsNUZAhnjMkPtKPlf%2BQrKvOCzVPkQkzIsdyK7son65hKsRrpqrR5B4kkUSZw7RtLoZdbPq5tRJlDc7uJuZJypr9OjaBEox3jJJRUikjqaityl8X5uQONdNHS%2BF9Xf6oYQfyPIDJbug0H9QilcMdKWD0VNXp1N4jBNNvqQBpf1Ath8ow7UeyGpgsI6Kd5xA3eHV3vpNFEm6G4663yRPnbhdSRcDkoZ53dS3IcFCWySqG2NVMQ3nDZLTnrymrlqWFwx%2BrnEPsOmpcZDqXN03T53kfJP5frJlyJYh1YnQwOcHDPQx9E8DAAA%3D.EweloBhAOEoUwIYHMA28QgIwV3fEQA%3D%3D'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
s = requests.Session()
n = s.get(url,verify=False,headers=headers)
soup = BeautifulSoup(n.content,'html.parser')
tables = soup.find_all(class_='group half') # Present in the browser but not in the returned request
发布于 2022-04-12 22:14:42
请使用来废弃该站点。
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
url = "your site url"
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(url)
page = driver.page_source
soup = BeautifulSoup(page, 'html.parser')
....
抓取的响应可能通过头选项不同,但是selenium将响应与通过真正的浏览器打开站点一样的响应。您可以在selenium中使用option.add_argument('--headless')
,而无需打开浏览器。
https://stackoverflow.com/questions/71852491
复制