seleniumUseAttension

使用selenium爬数据遇到的问题

一、导入需要的库

from selenium import webdriver  #导入操作web的模块
from selenium.webdriver.support.select import Select  #这行是为了操作一个select控件
import time  #为了让界面停一会

browser = webdriver.Chrome()  #打开chrome
browser.maximize_window() #最大化窗口
browser.get('http://×××.com') #访问网页

二、解决弹出警告框的障碍

time.sleep(3)
browser.switch_to.alert.accept() #模拟直接点一下弹出框

三、解决登录问题

elem_user = browser.find_element_by_name('username') # 获取用户名的输入控件 ,是通过用chrome的F12查看element获得的,一下控件基本都是这个方法获得
elem_user.clear()
elem_user.send_keys('######') # 键入用户名
elem_pass = browser.find_element_by_name('password')# 密码的输入控件
elem_pass.clear()
elem_pass.send_keys('#####')
elem_login = browser.find_element_by_id('login')# 登录按钮控件
elem_login.click()# 点击登录按钮
time.sleep(2)

四、按文字获取控件,使用较多

browser.find_element_by_xpath("//*[text()='管理']").click()  #按照网页上的顺序单击按钮,等几秒,跳转后再点。。。
time.sleep(3)

五、获取select控件的条目

list_1 =browser.find_element_by_tag_name('select')  # 用到了前面导入的Select模块
Select(list_1).select_by_value("100") # 按值来选条目

六、最重要的,如果网页内有iframe控件,想获取它内部的控件

browser.switch_to_frame('main') # 先切换到这个frame,“main”是名称
browser.find_element_by_id("add") #再继续获得frame内部的控件,否则总是取不到 ,浪费了大部分时间

七、以下是批量写文件

file_name =""
file_data = open('file_data_1.txt', 'w')
pages=0
while(pages<20000):
    table = browser.find_element_by_tag_name('table')  # 按tag取table表格控件
    table_tr_list = table.find_elements_by_tag_name('tr')    # 取当前页面的所有行
    table_cols = table_tr_list[0].find_elements_by_tag_name('th')   #取第一行的所有列
    for r,tr in enumerate(table_tr_list, 1):        
        table_td_list = tr.find_elements_by_tag_name('td')
        for c,td in enumerate(table_td_list):            
            file_data.write(td.text+'\n')            
    pages = pages + 1
    print(pages)
    if pages % 1000 == 0:  # 每1000页写个新文件
        file_data.close()
        flie_name = 'file_data_' + str(pages) + '.txt' #动态生成文件名称
        file_data = open(flie_name, 'w')
    browser.find_element_by_id('iwap-gen-3_next').click()  #点击下一页
    time.sleep(10)
file_data.close() #关闭最后一个文件

=====================================================================================================

ruixia,sun wechat
生活相关,请扫描wechat帐号获取更多精彩内容。。。。。。
0%