首页 > 解决方案 > 收集数据时如何解决登录问题?

问题描述

当您从网站接收数据时,如果您在登录后可以看到数据,您如何访问它?

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,由于登录问题,它不会被收集。我想知道如何解决登录问题。

标签: pythonpython-3.xseleniumbeautifulsoup

解决方案


解决方案 1

您可以找到 cookie,并使用该 cookie 启动 selenium 驱动程序。这不会永久解决问题,因为 cookie 会在一段时间后过期。

解决方案 2

您可以通过模拟登录行为来登录网站。element.click() element.send_keys('value')您可以使用 selenium 模拟通过 selenium 提供的许多其他魔术方法输入密码和用户名。

如果网站需要验证码才能登录,这将变得很困难。在这种情况下,您可以手动输入验证码,或者使用算法来识别它,或者使用解决方案 1。


推荐阅读