晚睡晚起收获快乐 2023-05-30 18:52 采纳率: 0%
浏览 103

python+selenium爬取政府政策的疑问

#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')

img

  • 写回答

1条回答 默认 最新

  • cjh4312 2023-05-30 20:08
    关注

    完全没有必要用selenium的 ,速度慢。这个网站有给你返回json结构完整数据

    评论

报告相同问题?

问题事件

  • 创建了问题 5月30日

悬赏问题

  • ¥15 soildworks装配体的尺寸问题
  • ¥100 有偿寻云闪付SDK转URL技术
  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑