首页 > 其他分享 >北京市政百姓信件分析---使用selenium爬取信件信息

北京市政百姓信件分析---使用selenium爬取信件信息

时间:2023-06-12 10:11:32浏览次数:51  
标签:selenium strip driver 爬取 html 信件 import div

下载selenium

使用管理员打开cmd'

pip install selenium

查看版本

pip show selenium

下载 WebDriver 驱动

谷歌浏览器 chromedrive:http://chromedriver.storage.googleapis.com/index.html
火狐浏览器 geckodriver:https://github.com/mozilla/geckodriver/releases
IE 浏览器 IEDriver:http://selenium-release.storage.googleapis.com/index.html
安装 Chrome、Firefox 驱动时,下载的驱动程序版本要和浏览器版本相匹配,否则不能驱动浏览器。安装 IE 驱动时需要下载的驱动程序版本要和 Selenium 版本相匹配。

代码

from lxml import etree
import requests
import csv
from selenium import webdriver
import time
import os
from selenium.webdriver.chrome.webdriver import WebDriver

#创建csv
from selenium.webdriver.common.by import By

outPath = 'D://xinfang_data.csv'
if (os.path.exists(outPath)):
    os.remove(outPath)
fp = open(outPath, 'wt', newline='', encoding='utf-8')  # 创建csv
writer = csv.writer(fp)
writer.writerow(('kind', 'time', 'processingDepartment', 'content'))

#请求头
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
}

# 创建浏览器对象
driver = webdriver.Chrome()

# 得到网页信息
def get_info(num):
    driver.get(url)
    driver.implicitly_wait(10)  # 隐式等待n秒,解释JavaScript是需要时间的,如果短了就无法正常获取数据,如果长了浪费时间;implicitly_wait()给定时间智能等待
    #driver.find_element_by_xpath('//*[@id="pageNum"]').clear()
    driver.find_element(By.ID,'pageNum').clear()#清除输入框
    #driver.find_element_by_id('pageNum').send_keys(num)
    driver.find_element(By.XPATH,'//*[@id="pageNum"]').send_keys(num)#输入页数
    driver.find_element(By.XPATH,'//*[@id="judgeFlag"]/a').click()#单击确认框
    time.sleep(1)#一定要停一下,否则加载不出来一直输出第一页
    #print(driver.current_window_handle)#当前页面句柄
    html = driver.page_source
    #print(driver.page_source)
    return html

#解析HTML文件,获取数据
def get_data(html):
    selector = etree.HTML(html)
    infos=selector.xpath('//*[@id="mailul"]/div')
    for info in infos:
        kind=info.xpath('div[1]/a/font/text()')[0]
        time=info.xpath('div[2]/div[1]/div[1]/text()')[0]
        processingDepartment = info.xpath('div[2]/div[1]/div[2]/span/text()')[0]
        content = info.xpath('div[1]/a/span/text()')[0]
        #处理得到的字符串
        parsekind=kind.strip().strip('·【').strip('】')
        #print(parsekind)
        parsetime=time.strip().strip('发起时间:').replace("-", "/")
        #print(parsetime)
        parsepd = processingDepartment.strip().strip('处理部门:')
        #print(parsepd)
        parsecontent = content.strip()
        #print(parsecontent)
        #写入csv
        writer.writerow((parsekind,parsetime,parsepd,parsecontent))

if __name__ == '__main__':
    url = 'http://www.beijing.gov.cn/hudong/hdjl/com.web.search.mailList.flow'
    for i in range(1,1000):
        html=get_info(i)
        get_data(html)
        time.sleep(1)

 

标签:selenium,strip,driver,爬取,html,信件,import,div
From: https://www.cnblogs.com/gnn40036/p/17474196.html

相关文章

  • Python网络爬虫对汽车团购报名的爬取及分析
    一、选题背景 现如今汽车已逐步进入家庭中,对于一些准备购入新车的家庭,犹豫不决,不知道现在市场上与车友们推荐的哪些车,此次爬虫项目将对网上的团购排名进行爬取,更能简单直观的让大家依据个人情况来挑选自己中意的车辆详情。二、设计方案1.主题式网络爬虫名称  《python网络......
  • python爬虫------------旅游的地点的爬取和可视化
    1.选题背景我国旅游行业的极速发展,因为之前疫情原因,使得国内旅游成为新风潮,由于国内疫情解封,使得中国成为最先开放旅游的国家,本次项目可视化就是分析国内旅游的数据,分析适合出行旅游的时间与地点信息.2.设计方案 1.向目标网络发送请求   2.获取数据网页源码   3.筛......
  • python爬虫------------旅游的地点的爬取和可视化 2
    随笔-2  文章-0  评论-0  阅读- 55python爬虫------------旅游的地点的爬取和可视化  1.选题背景我国旅游行业的极速发展,因为之前疫情原因,使得国内旅游成为新风潮,由于国内疫情解封,使得中国成为最先开放旅游的国家,本次项目可视化就是分析国内旅游......
  • 爬取B站热门视频并进行可视化分析
    (一)选题背景爬虫是从互联网上抓取对于我们有价值的信息。选择此题正是因为随着信息化的发展,大数据时代对信息的采需求和集量越来越大,相应的处理量也越来越大,正是因为如此,爬虫相应的岗位也开始增多,因此,学好这门课也是为将来就业打下扎实的基础。bilibili在当今众多视频网站中,有许......
  • python网络爬虫--爬取各省GDP
    一、选题背景1.随着经济全球化的日益深入发展,各国的经济发展也日益重要。在中国,省份是经济发展的基本单位,各省之间经济发展水平的差异较大。了解各省份GDP的数据情况,对于政府部门制定地区经济政策、企业拓展市场等具有重要的参考意义。2.因此,通过Python爬取各省份GPD数据,可......
  • Python借助百度搜索引擎爬取Python小屋密切相关文章
    封面图片:《Python程序设计实验指导书》(ISBN:9787302525790),董付国,清华大学出版社=============第一步,查看本机Chrome浏览器版本。第二步,下载正确版本的Chrome浏览器驱动然后放到Python安装目录中,同时确保Python安装目录在系统环境变量Path中,下载地址为http://chromedriver.storage.go......
  • Python爬取并简单分析2024年普通高校招生专业(专业类)选考科目要求
    任务描述:使用Python语言编写网络爬虫程序,采集山东省考试院发布的2024年普通高校招生专业(专业类)选考科目要求,然后统计不同要求的本科专业数量和专科专业数量。网页源代码分析与爬虫程序原理请参考:Python爬取2021年拟在山东招生普通高校专业(类)选考科目要求Python采集全国高校2020年拟......
  • python爬虫——爬取前程无忧网站招聘信息
    项目概要网络爬虫通常被称为爬虫,是搜索引擎的重要组成部分。随着信息技术的飞速进步,作为搜索引擎的一个组成部分,爬虫一直是研究的热点,它为大数据时代提供了数据支撑。而数据分析正是利用爬取的数据进行分析得到有益结论,通常的手段便是进行可视化分析。本项目爬取前程无忧网站,选取......
  • python爬虫--爬取各大城市的各个区域的租房信息
    一、选题背景衣食住行是生活的基本需求。衣和食好解决,不喜欢的衣服可以买新的,不好吃的食物可以换一家吃。可是在住宿上,买房和租房的置换成本都相对较高,因此房源选择尤为慎重。作为目前买不起房的自然人,我们一般是通过中介来实现租房的需求比如自如,贝壳找房和链家。链家占据了租赁......
  • python selenium 模拟实现滑块验证码
    canndy_test.pyimportcv2importnumpyasnpdefmatchImg(imgPath1,imgPath2):imgs=[]#原始图像,用于展示sou_img1=cv2.imread(imgPath1)sou_img2=cv2.imread(imgPath2)#原始图像,灰度#最小阈值100,最大阈值500img1=cv2......