#python小白关于selenium问题的疑问
原代码是@艽野尘梦better 这位作者的,主要内容是从北京市政府官网爬取政策文本,使用spyder,引入webdriver。
#问题描述:
selenium实现了自动打开浏览器,模拟搜索标题为“人才引进”的信息,并且从第一页爬到了最后一页,问题出在一直没有结果,也没有导出的csv文件,下文附上图以及代码:
from selenium import webdriver
import time
import pandas as pd
from selenium.webdriver.common.by import By
browser=webdriver.Firefox()
browser.get('https://www.beijing.gov.cn/so/s?siteCode=1100000088&tab=zcfg&qt=%E4%B8%93%E7%B2%BE%E7%89%B9%E6%96%B0')
time.sleep(5)
lable=browser.find_elements(By.CSS_SELECTOR,'.position-con.item-choose')#查找全文和标题的检索项
print(lable[0].text,lable[1].text)
js= 'arguments[0].setAttribute(arguments[1],arguments[2])'
browser.execute_script(js,lable[0],'class','position-con item-choose')#修改全文标签的class
browser.execute_script(js,lable[1],'class','position-con item-choose item-choose-on')#修改标题标签的class
time.sleep(2)
data=pd.DataFrame([],columns=['类型','链接','标题','文号','发文机构','主题分类','发布日期'])
page=1
while page:
if page !=1:
page.click()
time.sleep(1)
poli=browser.find_elements(By.CLASS_NAME,'search-result')
for elements in poli:#一个elements是一个记录
p_type=elements.find_element(By.CLASS_NAME,"result-header-lable").text#find_element_by_class_name("result-header-lable").text#政策类型
link=elements.find_element(By.TAG_NAME,"a").get_attribute('href')#find_element_by_tag_name("a").get_attribute('href')#链接
title=elements.find_element(By.TAG_NAME,"a").text#find_element_by_tag_name("a").text#标题
table=elements.find_elements(By.CLASS_NAME,"row-content")#文号、发文机构、主题分类、发布日期
content=[p_type,link,title]
for item in table:
content.append(item.text)
while len(content)<7:
content.append(0)
content=pd.DataFrame([content],columns=['类型','链接','标题','文号','发文机构','主题分类','发布日期'])
data=pd.concat([data,content])
page=browser.find_element(By.CLASS_NAME,'next')
data.to_csv('专精特新.csv',index=False,encoding='utf_8_sig')