我一直在尝试使用Python请求和BeautifulSoup来尝试写一个网页刮板。我尝试在网上使用几种解决方案登录到该网站,但无法这样做。无法登录到网站使用Python
这样做的一个原因是表单元素不使用传统方案。网站代码片段已在下面发布。任何帮助,将不胜感激。
This image contains the code of the form element
编辑1:我是相当新的这一点,因此一直停留在一个相当元素的一步。我试图改变我的登录凭证的关键值,但似乎没有帮助。
我一直在尝试使用Python请求和BeautifulSoup来尝试写一个网页刮板。我尝试在网上使用几种解决方案登录到该网站,但无法这样做。无法登录到网站使用Python
这样做的一个原因是表单元素不使用传统方案。网站代码片段已在下面发布。任何帮助,将不胜感激。
This image contains the code of the form element
编辑1:我是相当新的这一点,因此一直停留在一个相当元素的一步。我试图改变我的登录凭证的关键值,但似乎没有帮助。
你可以有一些原因,这是可以工作。你的代码也将被赞赏。我想到的第一个原因是它无法工作,这是因为您需要模拟真实的浏览器,例如Google Chrome或Firefox。
事实上,你需要有一个用户代理。默认情况下,python用户代理请求不像true user agent。
之后您需要捕获weeb网站的cookie并将其用于登录。
你有很多解决方案可以做到这一点,我可以解释两个当我有使用: - Selenium生成浏览器的行为。 - 使用请求,但使用浏览器等所有选项:生成用户代理并使用cookie(服务器需要认为您是真正的用户)。
您能否指点我相关的链接学习如何操作? –
您在预览文章中有2个链接(点击:“真正的用户代理”,例如用户代理,或者点击“Selenium”作为该文库的文档)。如果您想完整解释[请求](http://docs.python-requests.org/en/master/user/advanced/)(点击请求链接),并且使用比我更好的英语:D – Buky
戴尔,你必须发表你的方法来解决这个问题。
我通过这种方法制成履带,
response = urlopen(page_url)
if 'text/html' in response.getheader('Content-Type'):
print("hello 123")
html_bytes = response.read()
html_string = html_bytes.decode("utf-8")
,并通过这个html_string给BeautifulSoup。
soup = BeautifulSoup(html_string, 'html.parser')
html_string = soup.prettify()
我认为这使得它更简单。
也许显示你已经尝试过?也许没有代码的截图? –
登录并获取生成的COOKIE,并将其用于对该网站的另一个电话 – ZiTAL
该表单中存在隐藏的字段,例如, 'authenticity_token'您可能还需要发送 – mata