Python爬虫Selenium手动接管Edge爬取裁判文书网“环境污染”数据(Mac环境)

这篇具有很好参考价值的文章主要介绍了Python爬虫Selenium手动接管Edge爬取裁判文书网“环境污染”数据(Mac环境)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目标数据:爬取从2007年到2022年,各地级市中级法院历年关于“环境污染”的裁判文书数量。

由于裁判文书网需要登录,Selenium手动接管爬取可避免频繁登录造成的封号风险。

Selenium如何手动接管Edge浏览器:

1、打开终端,将命令 /Applications/Microsoft\ Edge.app/Contents/MacOS/Microsoft\ Edge --remote-debugging-port=9222 --user-data-dir="/Users/libraf/Documents/Edge"复制到终端里然后enter,其中:

/Applications/Microsoft\ Edge.app/Contents/MacOS/Microsoft\ Edge 表示Edge浏览器驱动路径(Edge浏览器驱动是selenium爬虫所必要的);

--remote-debugging-port=9222 表示一个空闲端口,通常照抄即可;

--user-data-dir="/Users/libraf/Documents/Edge" 表示浏览器配置文件存放路径,防止污染原本的Edge浏览器配置,"/Users/libraf/Documents/Edge" 为一个存在的任意路径即可。

2、打开裁判文书网(https://wenshu.court.gov.cn),登录完成并设定好相关筛选条件后,再用以下代码使selenium接管浏览器。

options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
browser = webdriver.Edge(executable_path='msedgedriver',options=options)

数据爬取:

如下图所示,选定关键词“环境污染”和法院层级“中级法院”,以2022年为例。图中左侧“地域及法院”为需要的数据。

Python爬虫Selenium手动接管Edge爬取裁判文书网“环境污染”数据(Mac环境)

首先,按F12键打开开发者工具,分析省级数据的xpath位置,右键检查“河北省(4)”,复制“河北省(4)”的xpath路径://*[@id="300_anchor"]/text(),操作如下图:

Python爬虫Selenium手动接管Edge爬取裁判文书网“环境污染”数据(Mac环境)

 通过对其他省份的xpath路径对比发现,其关键在于id的不同,id的规律如下图所示:

Python爬虫Selenium手动接管Edge爬取裁判文书网“环境污染”数据(Mac环境)

 因此自建列表,如下:

list0 = ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X']

接着,我们在断网状态下,点击图中左侧+字符号,发现无法展开地级市数据,说明该网页市级数据是动态加载的,需要展开后才能进行xpath定位,因此复制“河北省(4)”的+字符号的xpath路径://*[@id="300"]/i,发现同样可用id定位。

然后,复制“河北省保定市中级人民法院(2)”的xpath完整路径:/html/body/div/div[4]/div[1]/diy:lawyee[4]/div/div[2]/ul/li[3]/ul/li[1]/a/text(),操作如下图:Python爬虫Selenium手动接管Edge爬取裁判文书网“环境污染”数据(Mac环境)

其中,

1、经反复调试发现:/html/body/div/div[4]/div[1]/diy:lawyee[4]/div/div[2]/ul/li[3]/ul/li[1]/a/text() 中的 diy:lawyee[4]要删掉,否则无法定位,原因不明;

2、经对比路径发现:/html/body/div/div[4]/div[1]/diy:lawyee[4]/div/div[2]/ul/li[3]/ul/li[1]/a/text() 中的第一个li表示第几个省份,第二个li表示该省的第几个地级市中级人民法院。

完整代码如下:

from selenium import webdriver
import time
from selenium.webdriver.edge.options import Options
import pandas as pd

options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
browser = webdriver.Edge(executable_path='msedgedriver',options=options)

list0 = ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X']
list1 = []
m = 0
for i in list0:
    try:
        province = browser.find_element_by_xpath('//*[@id="{}00_anchor"]'.format(i)).text
    except:
        continue
    browser.find_element_by_xpath('//*[@id="{}00"]/i'.format(i)).click()
    time.sleep(3)
    
    m +=1
    n = 0
    while(1):
        n+=1
        try:
            city = browser.find_element_by_xpath('/html/body/div/div[4]/div[1]//div/div[2]/ul/li[{}]/ul/li[{}]/a'.format(m, n)).text
            print([province,city])
            list1.append([province,city])
            
        except:
            break
        
    browser.find_element_by_xpath('//*[@id="{}00"]/i'.format(i)).click()
    time.sleep(1)
print(list1)

df = pd.DataFrame(list1)
df.to_excel('2022年中级法院.xlsx',index = False)

运行上述代码即可得到2022年的目标数据,重新手动设定网页裁判年份和代码中的保存文件名,再运行即可得到其他年份的目标数据。数据截图如下:

Python爬虫Selenium手动接管Edge爬取裁判文书网“环境污染”数据(Mac环境)

Python爬虫Selenium手动接管Edge爬取裁判文书网“环境污染”数据(Mac环境) 

 文章来源地址https://www.toymoban.com/news/detail-405431.html

 

 

到了这里,关于Python爬虫Selenium手动接管Edge爬取裁判文书网“环境污染”数据(Mac环境)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python 使用selenium等爬虫技术爬取某华网

    本程序可以根据时间要求获取某华网上不同模块的新闻内容,时间要求包括设置截止日期,以及时间间隔,比如说获取距离2023-04-20一天以内的新闻。主要使用了selenium有关的爬虫技术,具体实现如下: 目录 目录 一、SpiderXinhua类的基础属性 二、日期获取与格式转换的函数ti

    2024年01月16日
    浏览(37)
  • Python爬虫入门系列之Selenium实现动态页面爬取

    在前一篇博客中,我们学习了如何使用多线程优化爬虫程序。但是,如果要爬取的网页是动态生成的或者包含大量JavaScript代码,单纯的静态页面爬取就不足够了。为了解决这个问题,我们可以使用Selenium库来模拟真实的浏览器行为,从而实现动态页面的爬取。 Selenium是一个用

    2024年02月11日
    浏览(54)
  • Python爬虫实战:selenium爬取电商平台商品数据(1)

    def index_page(page): “”\\\" 抓取索引页 :param page: 页码 “”\\\" print(‘正在爬取第’, str(page), ‘页数据’) try: url = ‘https://search.jd.com/Search?keyword=iPhoneev=exbrand_Apple’ driver.get(url) if page 1: input = driver.find_element_by_xpath(‘//*[@id=“J_bottomPage”]/span[2]/input’) button = driver.find_element_by_xpath(‘

    2024年04月28日
    浏览(42)
  • 【Python爬虫】基于selenium库爬取京东商品数据——以“七夕”为例

    小白学爬虫,费了一番功夫终于成功了哈哈!本文将结合本人踩雷经历,分享给各位学友~ 用写入方式打开名为data的csv文件,并确定将要提取的五项数据。 上面第一行代码值得一提,driver =  webdriver.Edge()括号内为Edge浏览器驱动程序地址,需要在Edge浏览器设置中查找Edge浏览器

    2024年02月06日
    浏览(56)
  • Python爬虫入门:使用selenium库,webdriver库模拟浏览器爬虫,模拟用户爬虫,爬取网站内文章数据,循环爬取网站全部数据。

    *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。 目录 准备工具: 思路: 具体操作: 调用需要的库: 启动浏览器驱动: 代码主体:  完整代码(解析注释): Python环境; 安装selenium库; Python编辑器; 待爬取的网站; 安装好的浏览器; 与浏览器版本相对应的

    2023年04月24日
    浏览(53)
  • Python爬虫使用selenium爬取qq群的成员信息(全自动实现自动登陆)(1)

    browser.find_element_by_xpath(‘.//ul[@id=“headerNav”]/li[4]’).click() 8.点击群管理之后,进入群管理界面,我们需要的是成员管理 WebDriverWait(browser, 1000).until( EC.presence_of_all_elements_located( (By.CLASS_NAME, ‘color-tit’) ) ) browser.find_element_by_class_name(‘color-tit’).click() 9.点击成员管理之后会重新

    2024年04月28日
    浏览(45)
  • Python网络爬虫逆向分析爬取动态网页、使用Selenium库爬取动态网页、​编辑将数据存储入MongoDB数据库

    目录 逆向分析爬取动态网页 了解静态网页和动态网页区别 1.判断静态网页  2.判断动态网页  逆向分析爬取动态网页 使用Selenium库爬取动态网页 安装Selenium库以及下载浏览器补丁 页面等待  页面操作 1.填充表单 2.执行JavaScript 元素选取 Selenium库的find_element的语法使用格式如下

    2024年02月15日
    浏览(109)
  • python爬虫进阶篇:Scrapy中使用Selenium模拟Firefox火狐浏览器爬取网页信息

    接着上一篇的笔记,Scrapy爬取普通无反爬、静态页面的网页时可以顺利爬取我们要的信息。但是大部分情况下我们要的数据所在的网页它是动态加载出来的(ajax请求后传回前端页面渲染、js调用function等)。这种情况下需要使用selenium进行模拟人工操作浏览器行为,实现自动化

    2024年02月04日
    浏览(73)
  • python爬虫进阶篇:Scrapy中使用Selenium+Firefox浏览器爬取沪深A股股票行情

    上篇记录了Scrapy搭配selenium的使用方法,有了基本的了解后我们可以将这项技术落实到实际需求中。目前很多股票网站的行情信息都是动态数据,我们可以用Scrapy+selenium对股票进行实时采集并持久化,再进行数据分析、邮件通知等操作。 详情请看上篇笔记 items middlewares setti

    2024年02月04日
    浏览(63)
  • 【爬虫】5.5 Selenium 爬取Ajax网页数据

    目录   AJAX 简介 任务目标 创建Ajax网站 创建服务器程序 编写爬虫程序         AJAX(Asynchronous JavaScript And XML,异步 JavaScript 及 XML) Asynchronous 一种创建 交互式 、 快速动态 网页应用的网页开发技术 通过在后台与服务器进行少量数据交换,无需重新加载整个网页的情况下

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包