瀏覽器模擬登入的主要技術點在於:
1.如何使用python的瀏覽器操作工具selenium
2.簡單看一下網頁,找到帳號密碼對應的框框,要知道python開啟的瀏覽器如何定位到這些
一、使用selenium開啟網頁
from selenium import以上幾句執行便可以開啟的登入介面,開啟瀏覽器可能較慢,耐心等一下.webdriver
url = '
'driver =webdriver.firefox()
driver.get(url)
二、找到帳號密碼對應的頁面元素
瀏覽器開啟頁面,點選f12,按上圖步驟,找到了使用者名稱的id"input1",同理找到密碼的id,找到後發現是"input2".
三、將自己的使用者名稱和密碼填入selenium開啟的瀏覽器
使用find_element_by_id方法找到元素,再使用send_keys方法傳入引數,最後使用click方法點選登入按鈕即可.
成品**有如下幾句:
#使用time模組sleep主要是為了控制操作速度,防止被認為是機械人,比較符合現實的情況應該隨機sleep時間./usr/bin/python
#encoding: utf-8
import
time
from selenium import
webdriver
deflogin(username, password):
#url = '' # 使用這個url登入成功後定位到園子
url中指明定位到首頁
driver =webdriver.firefox()
driver.get(url)
#print driver.title
name_input = driver.find_element_by_id('
input1
') #
找到使用者名稱的框框
pass_input = driver.find_element_by_id('
input2
') #
找到輸入密碼的框框
login_button = driver.find_element_by_id('
signin
') #
找到登入按鈕
name_input.clear()
name_input.send_keys(username)
#填寫使用者名稱
time.sleep(0.2)
pass_input.clear()
pass_input.send_keys(password)
#填寫密碼
time.sleep(0.2)
login_button.click()
#點選登入
time.sleep(0.2)
driver.get_cookies()
time.sleep(2)
driver.title
driver.close()
if__name__ == "
__main__":
user = "
masako
"pw = "*****
"login(user, pw)
上述**執行之後(注意將使用者名稱密碼換成自己的),可以看到開啟了瀏覽器,並自動填寫了帳號密碼,自動點選登入,成功後跳轉,然後自動關閉瀏覽器.
本地可以看到列印了乙份cookie和乙個標題" - 開發者的網上家園".
如果登入失敗,列印的標題會是"使用者登入 - ".
如果報錯,未開啟瀏覽器,多半是沒有安裝geckodriver.
上述**會開啟瀏覽器介面,若不想看到介面,可採用以下手段:
if在呼叫瀏覽器的時候使用display包裹,並將dispaly設定為不可見(visible=0)__name__ == "
__main__":
from pyvirtualdisplay import
display
display = display(visible=0, size=(1366, 768))
display.start()
user = "
masako
"pw = "*****
"login(user, pw)
display.stop()
python爬蟲常用之Scrapy 中介軟體
一 概述 1.中介軟體的作用 在scrapy執行的整個過程中,對scrapy框架執行的某些步驟做一些適配自己專案的動作.例如scrapy內建的httperrormiddleware,可以在http請求出錯時做一些處理.2.中介軟體的使用方法 配置settings.py.詳見scrapy文件 二 中介...
python爬蟲免登入 爬蟲使用cookie免登陸
由於前程無憂上崗位投遞記錄只保留兩個月,想記錄下。程式 放在github 對於怎麼獲取登陸後的頁面,有兩種思路使用賬號,密碼登陸,如果該 登陸系統簡單的話,沒有驗證碼啥的,有驗證碼的話,可以使用圖形識別庫 使用cookie繞過登陸頁面cookie cookie 複數形態cookies 中文名稱為 小...
python爬蟲模擬登入網頁 登入wish
wish登入頁面 是js寫的,在上面找登入鏈結很麻煩,直接故意寫錯登入賬號和密碼 獲得登入鏈結 上 import requests url1 url2 header 8或者不指定。data 獲得post請求的session物件 sesssion requests.session sesssion.p...