2017-02-22 241 views
-2

我一直在尝试使用Python请求和BeautifulSoup来尝试写一个网页刮板。我尝试在网上使用几种解决方案登录到该网站,但无法这样做。无法登录到网站使用Python

这样做的一个原因是表单元素不使用传统方案。网站代码片段已在下面发布。任何帮助,将不胜感激。

This image contains the code of the form element

编辑1:我是相当新的这一点,因此一直停留在一个相当元素的一步。我试图改变我的登录凭证的关键值,但似乎没有帮助。

My code as of now

+0

也许显示你已经尝试过?也许没有代码的截图? –

+0

登录并获取生成的COOKIE,并将其用于对该网站的另一个电话 – ZiTAL

+0

该表单中存在隐藏的字段,例如, 'authenticity_token'您可能还需要发送 – mata

回答

-1

你可以有一些原因,这是可以工作。你的代码也将被赞赏。我想到的第一个原因是它无法工作,这是因为您需要模拟真实的浏览器,例如Google Chrome或Firefox。

事实上,你需要有一个用户代理。默认情况下,python用户代理请求不像true user agent

之后您需要捕获weeb网站的cookie并将其用于登录。

你有很多解决方案可以做到这一点,我可以解释两个当我有使用: - Selenium生成浏览器的行为。 - 使用请求,但使用浏览器等所有选项:生成用户代理并使用cookie(服务器需要认为您是真正的用户)。

+0

您能否指点我相关的链接学习如何操作? –

+0

您在预览文章中有2个链接(点击:“真正的用户代理”,例如用户代理,或者点击“Selenium”作为该文库的文档)。如果您想完整解释[请求](http://docs.python-requests.org/en/master/user/advanced/)(点击请求链接),并且使用比我更好的英语:D – Buky

-1

戴尔,你必须发表你的方法来解决这个问题。

我通过这种方法制成履带,

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() 

我认为这使得它更简单。