如何刮取需要使用Python登录的网站
发布时间:2020-12-20 13:16:09 所属栏目:Python 来源:网络整理
导读:首先,我知道有很多类似的问题,但不幸的是,它们都不适合我.我是 python中的一个相对noob,简单的解释和答案将不胜感激. 我需要使用python以编程方式登录站点.我试图使用请求这样做.我已经观看了关于这个主题的YouTube视频,并查看了各种问题和答案,但它对我不起
首先,我知道有很多类似的问题,但不幸的是,它们都不适合我.我是
python中的一个相对noob,简单的解释和答案将不胜感激.
我需要使用python以编程方式登录站点.我试图使用请求这样做.我已经观看了关于这个主题的YouTube视频,并查看了各种问题和答案,但它对我不起作用. 以下代码与我实现目标的过程非常接近.我使用的IDE是带有python 3.6.0的Spyder 3.1.2.我的输出显示为[],如下面的代码所示.我已尝试与其他网站相同的方法,输出始终相同.我不知道这意味着什么.我怎么知道代码是否有效? import requests from lxml import html USERNAME = "username" PASSWORD = "password" LOGIN_URL = "https://bitbucket.org/account/signin/?next=/" URL = "https://bitbucket.org/" def main(): session_requests = requests.session() # Get login csrf token result = session_requests.get(LOGIN_URL) tree = html.fromstring(result.text) authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0] # Create payload payload = { "username": USERNAME,"password": PASSWORD,"csrfmiddlewaretoken": authenticity_token } # Perform login result = session_requests.post(LOGIN_URL,data = payload,headers = dict(referer = LOGIN_URL)) # Scrape url result = session_requests.get(URL,headers = dict(referer = URL)) tree = html.fromstring(result.content) bucket_names = tree.xpath("//div[@class='repo-list--repo']/a/text()") print(bucket_names) if __name__ == '__main__': main() runfile(‘C:/Users/Thomas/untitled6.py’,wdir =’C:/ Users / Thomas’) 先感谢您. chickencreature. 解决方法
试试这个.
result = requests.get(LOGIN_URL,auth=(USERNAME,PASSWORD)) 查看这些类似问题This和This的答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |