3
首先,我知道有一堆類似的問題,但不幸的是他們都沒有爲我工作。我是Python中的相對noob,簡單的解釋和答案將不勝感激。如何刮掉需要用Python登錄的網站
我需要使用python以編程方式登錄到站點。我正在嘗試使用請求執行此操作。我已經觀看了關於這個主題的YouTube視頻,並查看了各種問題和答案,但它對我來說不起作用。
下面的代碼和我實現我的目標一樣接近。我使用的IDE是Spyder 3.1.2和python 3.6.0。我的輸出顯示爲[],如下面的代碼所示。我已經嘗試了與其他網站相同的方法,並且輸出始終是相同的。但我不知道這意味着什麼。我怎麼知道代碼是否工作?
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:/用戶/托馬斯') []
預先感謝您。
chickencreature。