从网站接收数据时,如果登录后可以看到数据,该如何访问?
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Chrome('c://chromedriver.exe')
driver.get("http://www.gevolution.co.kr/rank/history.asp")
soup = BeautifulSoup(driver.page_source, 'html.parser')
blocks = soup.findAll('div', {'class': 'grp'})
bodys = []
for block in blocks:
body = block.text
body = str(body).strip()
bodys.append(body)
print(bodys)
结果:[]
一些代码在我要收集的站点上收集数据。顺便说一句,如果我自动打开Chrome,由于登录问题它不会被收集。我想知道如何解决登录问题。
答案 0 :(得分:0)
解决方案1
您可以locate the cookies,并使用该cookie来启动Selenium驱动程序。这将无法永久解决问题,因为cookie会在一段时间后过期。
解决方案2
您可以通过模拟登录行为来登录网站。您可以使用硒通过element.click()
element.send_keys('value')
和硒提供的许多其他魔术方法来模拟密码和用户名的输入。
如果网站需要验证码登录,这将变得很困难。在这种情况下,您可以手动输入验证码,或者使用算法来识别验证码,或者使用解决方案1。