selenium 模擬click 抓取page data

一個更好用的crawler,完全模仿人為操作。

也可以用於自動化網頁測試。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import xlsxwriter

workbook   = xlsxwriter.Workbook('abc.xlsx')
worksheet = workbook.add_worksheet('contract')
driver = webdriver.Firefox()

for page in range(1, 10):
    driver.get("https://www.abc.com="+str(page))
    elem = driver.find_element(By.CLASS_NAME, "result")
    rows = elem.find_elements(By.CLASS_NAME,"row")
    rowNum = 0
    for row in rows:
        rowNum = rowNum+1
        if page >1 and rowNum ==1 :
            continue
        rowNumTotal = (page-1)*10+rowNum
        colNum = 0
        cols = row.find_elements(By.CLASS_NAME,"col")
        for col in cols:
            colNum= colNum+1
            if colNum<7:
                worksheet.write(rowNumTotal-1, colNum-1, col.text)
            elif colNum==7:
                print(col.text)
                all_a = col.fin
Selenium是一个流行的Web自动化测试工具,也可以用于网页爬虫。要在Selenium模拟登录QQ空间并爬取数据,你可以按照以下步骤操作: 1. 安装必要的库:首先需要安装Selenium WebDriver,这通常适用于Python用户,可以使用pip命令安装`selenium`库及其对应的浏览器驱动(如ChromeDriver、FirefoxDriver等)。 ```bash pip install selenium webdriver_manager ``` 2. 驱动初始化:根据你选择的浏览器,导入对应语言版本的WebDriver,比如对于Chrome,会用到`webdriver.Chrome()`。 ```python from selenium import webdriver driver = webdriver.Chrome() ``` 3. 打开QQ空间登录页面:使用`get()`方法加载登录网址。 ```python url = 'https://qzone.qq.com/' driver.get(url) ``` 4. 输入账号密码:找到登录表单元素,例如通过`find_element_by_name`或`find_element_by_id`定位输入框,然后填充账号和密码。 ```python username_input = driver.find_element_by_name('u') password_input = driver.find_element_by_name('p') username_input.send_keys('your_username') password_input.send_keys('your_password') ``` 5. 提交登录:找到登录按钮并触发点击。 ```python login_button = driver.find_element_by_id('loginButton') login_button.click() ``` 6. 等待加载完成:有时候登录后需要等待页面完全加载以便获取动态生成的数据,可以设置一个延时或者检查特定元素是否存在。 ```python import time time.sleep(5) # 或者使用try-except结构检查元素存在 # 检查登录状态的元素,如"登录成功"提示文字 if "登录成功" in driver.page_source: print("Login successful") else: print("Login failed") ``` 7. 数据抓取:找到你要抓取的数据部分,根据其HTML标签属性定位并提取内容,例如使用`find_elements_by_css_selector`。 ```python data_elements = driver.find_elements_by_css_selector('.your_data_class') for element in data_elements: data = element.text print(data) ``` 8. 结束会话:最后别忘了关闭浏览器窗口。 ```python driver.quit() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值