0


python爬虫动态爬取需点击事件或下一步才可获取的内容

准备工作:

版本:PYTHON3.8.2 ide:sts ; 插件:pydev

或pycharm一套

安装相关驱动

pip3 install requests

pip3 install selenium

导包:

import time
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
import random

代码:

url="http://www.xxxx.com/yy/123"
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.55"
} #以字典的形式设置请求头,随便找个代理,处理反爬
resp=requests.get(url,headers=headers)

#print(resp.text)

#测试打印出HTML进入下一步

重点:

browser = webdriver.Chrome("X:\Program Files\Google\Chrome\Application\chromedriver.exe")

本机没有先查找本机版本
chrome://version/

下载对应版本号的chromedriver.exe 若没有选接近的
下载地址 http://chromedriver.storage.googleapis.com/index.html

注:过期方法
find_element_by_class,find_element_by_id……

新方法用法:
from selenium.webdriver.common.by import By
browser.find_element(by=By.ID, value='xxx')
browser.find_element(by=By.NAME, value='xxx')
browser.find_element(by=By.TAG_NAME, value='xxx')
browser.find_element(by=By.CLASS_NAME, value='xxx')
browser.find_element(by=By.LINK_TEXT, value='xxx')
browser.find_element(by=By.PARTIAL_LINK_TEXT, value='xxx')

正文try/catch块:

try:
browser.get(url)
while(True):
div = browser.find_element(By.CLASS_NAME, "xxxClassName").text
print(div)
print("###################\n")

     objBtn=browser.find_elements(By.CLASS_NAME, "xxName")?

objBtn.click()

#目标按键区域灵活处理单个还是数组,若失效用下面语句
browser.execute_script("arguments[0].click();", objBtn)

    #表太过份,拿了就走,建议N>=3
     r=random.randint(1,N)
     time.sleep(r)

finally:
browser.close()

注:仅供学习交流,勿有妄念!

标签: python 爬虫 selenium

本文转载自: https://blog.csdn.net/FRESHET/article/details/126481481
版权归原作者 FRESHET 所有, 如有侵权,请联系我们删除。

“python爬虫动态爬取需点击事件或下一步才可获取的内容”的评论:

还没有评论