クローラーログイン(Webドライバーログインとリクエストログイン)

resquestアプリケーション

ログインページ

ここに画像の説明を挿入します

対応するソースコード

ここに画像の説明を挿入します

対応するコード

ここに画像の説明を挿入します

対応する要素を見つける

ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
1. session.postのURLとしてアプリケーション処理URLを使用します
。2。アカウント番号を「username」の値としてpyloadディクショナリに入力し、「password」の値としてパスワードをpyloadディクショナリに入力します。名前キーの名前は、ページのソースによって異なります。テキストボックスのコードで取得された名前。

webdriverアプリケーション

プラグインを使用してコードを直接生成する

from selenium import webdriver
from bs4 import BeautifulSoup
import requests
import time
driver = webdriver.Chrome()     # 打开 Chrome 浏览器

# 将刚刚复制的帖在这
driver.get("http://www.xue1888.com/")
driver.execute_script("window.scrollTo(100,0);")
driver.get_screenshot_as_file("./sreenshot1.png")
key = input("please input the key with the picture:")
driver.find_element_by_name("username").send_keys("02158412")
driver.find_element_by_name("password").send_keys("194646")
driver.find_element_by_name("key").send_keys(key)
driver.find_element_by_xpath(u"//input[@value='登 录']").click()
time.sleep(10)
driver.find_element_by_link_text(u"点击进入文献下载页").click()
driver.get("http://www.xue1888.com/e/action/ListInfo/?classid=1")
driver.find_element_by_xpath("//div[@id='down_content']/div/div/ul/li[2]/a/div/h3").click()
driver.find_element_by_link_text(u"英文文献下载(推荐)").click()
driver.find_element_by_id("gs_hdr_tsi").clear()
driver.find_element_by_id("gs_hdr_tsi").send_keys("Pest identification")
driver.find_element_by_id("gs_hdr_frm").submit()

すべての主要なブラウザはscrollTo()メソッドをサポートしています

滚动内容的坐标位置100,500:
function scrollWindow(){
    
    
    window.scrollTo(100,500);
}

インスピレーション:https//www.jb51.net/article/140239.htm
具体的な内容は次のとおりです
。1。セレンをインストールします。

すでにanaconda3をインストールしている場合は、Windowsのdosウィンドウにセレンをインストールするコマンドを直接入力します。

python -m pip install --upgrade pip

バージョンを表示ピップショーセレン

2.次に、http://chromedriver.storage.googleapis.com/index.htmlにアクセスしてchromedriver.exeをダウンロードします(chromeのバージョンに応じて対応するものをダウンロードします)

3.ダウンロードしたchromedriver.exeを解凍し、指定したディレクトリに配置します

4. tesseract-ocr.exeをインストールして、環境変数を構成します

5. pytesseractをインストールします:pip install pytesseract

6.pythonスクリプト

アイデア:6.1ログインページでF12キーを押して要素を確認し、ユーザー名パスワード確認コード確認コード画像の要素IDを取得します

6.2.chromedriverを呼び出す

6.3。確認コード画像のスクリーンショットの場所

6.4。pytesseractは画像内の文字を認識し、最後に確認コードは空として認識されます。これは解決されるべきです

6.5。スクリプトは次のとおりです。


from selenium import webdriver
from PIL import Image
import pytesseract
import os,time
chromedriver = "D:\Program Files\Anaconda3\selenium\webdriver\chromedriver.exe" #这里写本地的chromedriver 的所在路径
os.environ["webdriver.Chrome.driver"] = chromedriver #调用chrome浏览器
driver = webdriver.Chrome(chromedriver)
driver.get("http://xxxx.com") #该处为具体网址
driver.refresh() #刷新页面
driver.maximize_window() #浏览器最大化
#获取全屏图片,并截取验证码图片的位置
driver.get_screenshot_as_file('a.png')
location = driver.find_element_by_id('imgValidateCode').location
size = driver.find_element_by_id('imgValidateCode').size
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
a = Image.open("a.png")
im = a.crop((left,top,right,bottom))
im.save('a.png')
time.sleep(1)
#打开保存的验证码图片
image = Image.open("a.png")
#图片转换成字符
vcode = pytesseract.image_to_string(image)
print(vcode)
#填充用户名 密码 验证码
driver.find_element_by_id("staffCode").send_keys("username")
driver.find_element_by_id("pwd").send_keys("password")
driver.find_element_by_id("validateCode").send_keys(vcode)
#点击登录 
driver.find_element_by_id("loginBtn").click()

おすすめ

転載: blog.csdn.net/lockhou/article/details/115033853