使用 selenium 中的webdriver 驱动chorm 以及爬取数据
1.下载selenium 并导入
from selenium import webdriver ##驱动
from selenium.webdriver.chrome.service import Service ##驱动
import re ##筛选数据
from selenium.webdriver.common.by import By ##驱动类
import time
import pymysql ##数据库
开始webdriver的配置
o=Options()
o.add_argument('--headless')#无界面浏览
path = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"#chrome驱动的地址
#chrome驱动的服务赋值
s=Service(path)
#驱动
driver=webdriver.Chrome(service=s,options=o)
#目标网址
baidu= "www.baidu.com”
#页面加载多久再进行网页爬虫操作
driver.implicitly_wait(10)
#获取页面
strhtml = driver.get(url=baidu) # Get方式获取网页对象
然后操作页面
#操作页面(execute.....通过Js来对页面模拟人进行操作) 当前操作为滑到底部 然后滑到500高度的位置
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
driver.execute_script("window.scrollTo(0, 500);")
接下来获取页面数据 并筛选数据
str=driver.page_source
#根据类名获取元素
test=driver.find_elements(by=By.CLASS_NAME,value="cate1688-offer")
#基数
a=0
for param in test:
#计数
a=a+1
#根据页面发现的规律获取相对应的数据
title=param.find_element(by=By.CLASS_NAME,value="title").text
price=param.find_element(by=By.CLASS_NAME,value="price").text
number=re.findall(r"交.*",param.find_element(by=By.CLASS_NAME,value="number").text)[0][1:-1]
img = param.find_element(by=By.CLASS_NAME,value="img").find_element(by=By.TAG_NAME, value="img").get_attribute('src')
爬取完毕
原创不易,转载请携带原文地址
谢谢你