python登陸網站
『壹』 python3 怎樣自動登錄網站
先用chrome的調試器抓取登錄的POST請求,對照網頁里表單的代碼,你就清楚該網站登錄的介面,版之後用requests寫就是權了。
我一般用更省事的方法,勾選自動登錄,然後把cookies存下來給程序用,免登錄,也不用處理登錄驗證碼。當然需要增加檢測是否需要重登錄的邏輯。
少數情況下網站會拒絕常見瀏覽器以外的客戶端請求,需要偽造user-agent,例如https://proxy.org 這個網站,直接用requests抓會返回一個「你丫是爬蟲吧」的錯誤頁面。
『貳』 怎樣用python實現網頁自動登錄
可以在cmd下通過命令安裝selenium模塊:pip install selenium 或者 easy_install selenium。
分析網頁控制項id:
# -*- coding: utf-8 -*-
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
iedriver = "C:Program FilesInternet ExplorerIEDriverServer.exe"
os.environ["webdriver.ie.driver"] = iedriver #調用瀏覽器
browser = webdriver.Ie(iedriver)
browser.get('http://weibo.com/') #需要打開的網址
user = browser.find_element_by_id("loginname") #審查元素username的id
user.send_keys("11111") #輸入賬號
password = browser.find_element_by_name("password") #審查元素password的name
password.send_keys("1234") #輸入密碼
password.send_keys(Keys.RETURN) #實現自動點擊登陸
print('登陸成功')
『叄』 python如何自動登錄網頁
import urllib
import urllib2
你會發現很簡單。例子網上很多,試下不行再追問。
『肆』 如何用python實現網頁自動登錄
以登陸網路為例子,如下:
import urllib,urllib2,httplib,cookielib
def auto_login_hi(url,name,pwd):
url_hi="http://passport..com/?login"
#設置cookie
cookie=cookielib.CookieJar()
cj=urllib2.HTTPCookieProcessor(cookie)
#設置登錄參數
postdata=urllib.urlencode({'username':name,'password':pwd})
#生成請求
request=urllib2.Request(url_hi,postdata)
#登錄網路
opener=urllib2.build_opener(request,cj)
f=opener.open(request)
print f
#打開網路HI空間頁面
hi_html=opener.open(url)
return hi_html
if __name__=='__main__':
name='name'
password='password'
url='yoururl'#例如:url='http://hi..com/cdkey51'
h=auto_login_hi(url,name,password)
print h.read()#h裡面的內容便是登錄後的頁面內容
『伍』 我想寫一個批量python登錄網站,並且登錄後指定一個網址判斷網頁是否是我想要的東西,把我
我們將會按照以下步驟進行:
提取登錄需要的詳細信息
執行站點登錄
爬取所需要的數據
在本教程中,我使用了以下包(可以在 requirements.txt 中找到):
requests
lxml
步驟一:研究該網站
打開登錄頁面
進入以下頁面 「」。你會看到如下圖所示的頁面(執行注銷,以防你已經登錄)
仔細研究那些我們需要提取的詳細信息,以供登錄之用
在這一部分,我們會創建一個字典來保存執行登錄的詳細信息:
1. 右擊 「Username or email」 欄位,選擇「查看元素」。我們將使用 「name」 屬性為 「username」 的輸入框的值。「username」將會是 key 值,我們的用戶名/電子郵箱就是對應的 value 值(在其他的網站上這些 key 值可能是 「email」,「 user_name」,「 login」,等等)。
2. 右擊 「Password」 欄位,選擇「查看元素」。在腳本中我們需要使用 「name」 屬性為 「password」 的輸入框的值。「password」 將是字典的 key 值,我們輸入的密碼將是對應的 value 值(在其他網站key值可能是 「userpassword」,「loginpassword」,「pwd」,等等)。
3. 在源代碼頁面中,查找一個名為 「csrfmiddlewaretoken」 的隱藏輸入標簽。「csrfmiddlewaretoken」 將是 key 值,而對應的 value 值將是這個隱藏的輸入值(在其他網站上這個 value 值可能是一個名為 「csrftoken」,「 authenticationtoken」 的隱藏輸入值)。列如:「」。
最後我們將會得到一個類似這樣的字典:
payload = {
"username": "<USER NAME>",
"password": "<PASSWORD>",
"csrfmiddlewaretoken": "<CSRF_TOKEN>"
}
請記住,這是這個網站的一個具體案例。雖然這個登錄表單很簡單,但其他網站可能需要我們檢查瀏覽器的請求日誌,並找到登錄步驟中應該使用的相關的 key 值和 value 值。
步驟2:執行登錄網站
對於這個腳本,我們只需要導入如下內容:
import requests
from lxml import html
首先,我們要創建 session 對象。這個對象會允許我們保存所有的登錄會話請求。
session_requests = requests.session()
第二,我們要從該網頁上提取在登錄時所使用的 csrf 標記。在這個例子中,我們使用的是 lxml 和 xpath 來提取,我們也可以使用正則表達式或者其他的一些方法來提取這些數據。
login_url = ""
result = session_requests.get(login_url)
tree = html.fromstring(result.text)
authenticity_token = list(set(tree.xpath("//input[@name='csrfmiddlewaretoken']/@value")))[0]
接下來,我們要執行登錄階段。在這一階段,我們發送一個 POST 請求給登錄的 url。我們使用前面步驟中創建的 payload 作為 data 。也可以為該請求使用一個標題並在該標題中給這個相同的 url 添加一個參照鍵。
result = session_requests.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)
步驟三:爬取內容
現在,我們已經登錄成功了,我們將從 bitbucket dashboard 頁面上執行真正的爬取操作。
url = ''
result = session_requests.get(
url,
headers = dict(referer = url)
)
為了測試以上內容,我們從 bitbucket dashboard 頁面上爬取了項目列表。我們將再次使用 xpath 來查找目標元素,清除新行中的文本和空格並列印出結果。如果一切都運行 OK,輸出結果應該是你 bitbucket 賬戶中的 buckets / project 列表。
tree = html.fromstring(result.content)
bucket_elems = tree.findall(".//span[@class='repo-name']/")
bucket_names = [bucket.text_content.replace("n", "").strip() for bucket in bucket_elems]
print bucket_names
你也可以通過檢查從每個請求返回的狀態代碼來驗證這些請求結果。它不會總是能讓你知道登錄階段是否是成功的,但是可以用來作為一個驗證指標。
例如:
result.ok # 會告訴我們最後一次請求是否成功
result.status_code # 會返回給我們最後一次請求的狀態
就是這樣。
『陸』 如何用python模擬登錄一個網站
首先你要清楚整個登錄過程,瀏覽器按F12,查看網路,看看瀏覽器發生了什麼請求,收到了什麼回復。
然後用用urllib或requests庫發送request就行了。
關於要不要驗證碼,肯定有那個請求,你沒有看到吧?
如果要就會請求驗證碼,在request裡面發送就好了。
『柒』 如何訪問需要登陸的網頁 python
可以嘗試添加相關cookie來試著去訪問。自己先本地登錄一下,然後抓取頁面cookie,然後構造相應的請求,讓他看起來像是登錄過的,如果網站驗證的不是特別嚴的話,是可以成功的。
還有一種方法,就是用Selenium框架,他會打開一個瀏覽器,然後訪問指定url。但是還是免不了需要登錄一次,但是登錄過程,輸入賬號密碼和點擊登錄按鈕都是你可以模擬的。具體你可以參照官方文檔。
『捌』 python爬蟲模擬登陸網站
你可以結合使用requests和selenium這兩個python模塊來實現半自動化模擬登錄。
#-*-coding:utf-8-*-
importtime
importrequests
fromrequests.sessionsimportcookiejar_from_dict
fromseleniumimportwebdriver
LOGIN_URL='http://www.cofool.com/'
driver=webdriver.Firefox()
driver.get(LOGIN_URL)
time.sleep(30)
cookies={}
forcookieindriver.get_cookies():
cookies[cookie['name']]=cookie['value']
driver.quit()
printcookies
#cookies={}
headers={
'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64;rv:24.0)Gecko/20100101Firefox/24.0',
'Accept':'*/*',
'Connection':'keep-alive',
}
cookies=cookiejar_from_dict(cookies)
rep=requests.get('http://www2.cofool.com/stock/mainzjgp.asp',cookies=cookies,headers=headers)
printrep.text
如果解決了您的問題請點贊!
如果未解決請繼續追問
『玖』 python里怎麼用spynner登錄網頁
有些網頁需要你登錄之後才可以訪問,你需要提供賬戶和密碼。
只要在發送http請求時,帶上含有正常登陸的cookie就可以了。
1.首先我們要先了解cookie的工作原理。
Cookie是由伺服器端生成,發送給User-Agent(一般是瀏覽器),瀏覽器會將Cookie的key/value保存到某個目錄下的文本文件內,下次請求同一網站時就發送該Cookie給伺服器(前提是瀏覽器設置為啟用cookie)。Cookie名稱和值可以由伺服器端開發自己定義,對於JSP而言也可以直接寫入jsessionid,這樣伺服器可以知道該用戶是否合法用戶以及是否需要重新登錄等。
2.之後我們要獲取到用戶正常登錄的cookie.
python提供了cookieJar的庫,只要把cookieJar的實例作為參數傳到urllib2的一個opener裡面。
然後訪問一次登錄的頁面,cookie就已經保存下來了。之後通過這個實例訪問所有的頁面都帶有正常登陸的cookie了。
以人人網為例子。
#encoding=utf-8
import urllib2
import urllib
import cookielib
def renrenBrower(url,user,password):
#登陸頁面,可以通過抓包工具分析獲得,如fiddler,wireshark
login_page = "http://www.renren.com/PLogin.do"
try:
#獲得一個cookieJar實例
cj = cookielib.CookieJar()
#cookieJar作為參數,獲得一個opener的實例
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#偽裝成一個正常的瀏覽器,避免有些web伺服器拒絕訪問。
opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]
#生成Post數據,含有登陸用戶名密碼。
data = urllib.urlencode({"email":user,"password":password})
#以post的方法訪問登陸頁面,訪問之後cookieJar會自定保存cookie
opener.open(login_page,data)
#以帶cookie的方式訪問頁面
op=opener.open(url)
#讀取頁面源碼
data= op.read()
return data
except Exception,e:
print str(e)
#訪問某用戶的個人主頁,其實這已經實現了人人網的簽到功能。
『拾』 想用python編寫一個腳本,登錄網頁,在網頁里做一系列操作,應該怎樣實現
python編寫一個腳本的具體操作:
1、首先,打開python並創建一個新的PY文件。