序文
セレンの重要性は自明です。動的なウェブページに直面して、通常のクローラーは使いやすくなく、インターフェースは運が良ければ見つけることができます。最も実用性が高いのはセレンだけです。
セレンの重要な知識ポイント
自動ログインを実現するためのCookieの取得と使用
簡単な例として、コードをスキャンしてDoubanにログインし、Cookieを保存します
browser.get('https://accounts.douban.com/passport/login?source=movie')
time.sleep(15)
# # 获取cookie并通过json模块将dict转化成str
# dictCookies = browser.get_cookies()
# jsonCookies = json.dumps(dictCookies)
# # 登录完成后,将cookie保存到本地文件
# with open('cookies.json', 'w') as f:
# f.write(jsonCookies)
# 初次建立连接,随后方可修改cookie
browser.get('https://accounts.douban.com/passport/login?source=movie')
# 删除第一次建立连接时的cookie
browser.delete_all_cookies()
# 读取登录时存储到本地的cookie
with open('cookies.json', 'r', encoding='utf-8') as f:
listCookies = json.loads(f.read())
for cookie in listCookies:
browser.add_cookie({
'domain': '.accounts.douban.com', # 此处xxx.com前,需要带点
'name': cookie['name'],
'value': cookie['value'],
'path': '/',
'expires': None
})
# 再次访问页面,便可实现免登陆访问
browser.get('https://movie.douban.com/')
多くのWebページは、それらにアクセスするためにCookieを運ぶためにセレンを必要とし、異なるWebページ上のCookieの適時性も異なります。この例は最も一般的で実用的です。
拡張機能と拡張機能
自動ログインを使用して、自動チケット取得などのソフトウェアの初期開発を実現します。
リクエストとCookieについて
セレン元素の位置決め
練習後は、
絶対パス
が最も速くて便利です。チェックでコピーfullxpathを右クリックすると、通常は見つけることができます。見つからない場合は、ネストされたWebページまたはその他の難しいポイントである可能性があります。要素属性を
使用して、より多くの配置方法、より少ない練習、より信頼性の低いエクスペリエンス
スクロール・バー
例
time.sleep(2)
driver.execute_script('window.scrollTo(0,400)')
電話を偽装する
* Baiduライブラリに対処するため
*
url = "https://wenku.baidu.com/view/aa31a84bcf84b9d528ea7a2c.html"
options = webdriver.ChromeOptions()
# 伪装成iPhone
options.add_argument('--user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3')
driver = webdriver.Chrome(chrome_options=options)
driver.get(url)
次のクローラーに進むために、モバイル端末を偽装します。そうしないと、ターゲットURLを入力すると、最初にライブラリのホームページにジャンプし、次にポジショニングの操作がより困難になります。
一般的に報告されるエラー
NoSuchElementException: Message: Unable to locate element:
ポジショニングが失敗するか、ページが完全に読み込まれていません
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted:
目的の要素が予期せずページに表示されます。スクロールバーを操作するだけです。
典型的な例の要約
- Douban
- Baiduライブラリ
- Baiduの写真
- http://www.impawards.com/(失敗)
- 中国鉄道ネットワーク
- ほとんど知っている