温馨提示:

爬虫玩得好,监狱进得早。数据玩得溜,牢饭吃个够。

《刑法》第 285 条,非法获取计算机信息系统数据罪。
       违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。

正文:

本篇将介绍更加刺激的案例,嘿嘿~这次我们不整那些各个平台公司的网站了,我们整一下这个:

这个我们生活啊,时不时的需要来点刺激,这次我考虑了很久,要不要写,我又怕我会进去。。。但是不写这个又是一个很好的案例 (曾经是某公司的面试题),我考虑很久,决定还是写了,在写之前呢,我从网上查了查有没相关的案例,我发现还是有的,所以应该是没有问题的

接下来我们就开始了,提取最新月份的行政区划代码,现在最新的是2020年11月份的,我们就提取这个

提取这个地址URL的主页:

http://www.mca.gov.cn/article/sj/xzqh/2020/

而我们要提取这里面的内容

那这个节点定位到了后,肯定是click点击,然后用xpath提取就可以,点击完成后我要提取 这些数据

那现在我们的问题来了,我们点击之后出现了两个窗口:

假如说我们在第一个窗口的时候,我们创建了一个浏览器对象比如代码我们就这样写:

driver.get(url='http://www.mca.gov.cn/article/sj/xzqh/2020/')

这就是打开了这个主页的URL地址的页面
接着我们就要找到这个节点

代码如下:

driver.find_element_by_xpath(提取节点xpath表达式).click()

这样我们就打开了第二个窗口,就到了这个页面

我们就是从这个页面里面提取数据,那么问题来了,我们这个driver,提取的到底是那个页面的driver,那我们想一想,如果是第一个页面的,那就只是点击了一下,那还是停留在这个页面,那我们xpath不可能提取数据的吧,所以就明确的说就是第一个页面的∫driver,但是他不可能跑到第二个页面去

所以我们任务就是把主页的driver切换到详情页里面去,也就是第二页里面去,一但我们切换过来了,我们就可以直接xpath提取了,页面也叫做句柄(窗口)

那我们切换句柄也就两句代码:

# li:[<handle1>,<handle2>...]  handle1就是主页的那个,h2就是切换过来的句柄,类似于这种
li.driver.window_handles  # 拿到整个浏览器的句柄
driver.switch_to.window(li[1])  # 获取第二个元素,第一个是主页的

接下里我们写代码:

from selenium import webdriver
import time
# 导入time模块是因为,webdriver打开浏览器页面需要时间

打开浏览器:

# 打开浏览器,输入URL地址
self.driver = webdriver.Chrome()
self.driver.get(url='http://www.mca.gov.cn/article/sj/xzqh/2020/')

接下来我们点到详情页的页面首先提取xpath表达式:

self.driver.find_element_by_xpath('//*[@id="list_content"]/div[2]/div/ul/table/tbody/tr[1]/td[2]/a').click()
# 只要click(),必须休眠
time.sleep(1)

接着切换句柄,就是上面我们之前写过,那两行代码就是,再然后就是老一套的提取数据,用xpath表达式,表达式就直接复制就行

所以我们就直接奉上所有代码:

"""
selenium抓取民政部最新行政区划代码
"""
from selenium import webdriver
import timeclass MzbSpider:def __init__(self):# 打开浏览器,输入URL地址self.driver = webdriver.Chrome()self.driver.get(url='http://www.mca.gov.cn/article/sj/xzqh/2020/')def parse_html(self):self.driver.find_element_by_xpath('//*[@id="list_content"]/div[2]/div/ul/table/tbody/tr[1]/td[2]/a').click()# 谨记:只要click(),必须休眠time.sleep(1)# 切换句柄li = self.driver.window_handlesself.driver.switch_to.window(li[1])# 提取数据tr_list = self.driver.find_elements_by_xpath('//tr[@height="19"]')for tr in tr_list:item = {}li = tr.text.split()item['code'] = li[0]item['name'] = li[1]print(item)def run(self):self.parse_html()if __name__ == '__main__':spider = MzbSpider()spider.run()

爬虫第十一式:用selenium爬取民政部行政区划代码相关推荐

  1. python 爬虫实战六:用 selenium 爬取豆瓣电影

    今天帮朋友爬取豆瓣电影的数据,以便进行社交网络分析. 首先打开豆瓣电影,然后点击 分类 ,选择要爬取的特定电影 这里以国产喜剧片为例:依次点击 电影.喜剧.中国大陆 然后点击一个小的列表按键 找到我们 ...

  2. 爬虫(6)-使用selenium爬取淘宝天猫商品信息(价格,销售量等)

    文章目录 1.只读取第一页 1.1准备工作 1.2.定位 1.3.获取商品信息 1.4. 整体代码 1.5.输出结果展示 1.6改进,存储在CSV文件内并分行存储 2.读取多页商品信息 2.1部分问题 ...

  3. python爬取微博评论点赞数_Python selenium爬取微博数据代码实例

    爬取某人的微博数据,把某人所有时间段的微博数据都爬下来. 具体思路: 创建driver-–get网页--找到并提取信息-–保存csv--翻页--get网页(开始循环)-----没有"下一页& ...

  4. 爬虫第十式:多线程爬取小米应用商店聊天社交类别

    温馨提示: 爬虫玩得好,监狱进得早.数据玩得溜,牢饭吃个够. <刑法>第 285 条,非法获取计算机信息系统数据罪.        违反国家规定,侵入前款规定以外的计算机信息系统或者采用其 ...

  5. python 爬虫(一) requests+BeautifulSoup 爬取简单网页代码示例

    以前搞偷偷摸摸的事,不对,是搞爬虫都是用urllib,不过真的是很麻烦,下面就使用requests + BeautifulSoup 爬爬简单的网页. 详细介绍都在代码中注释了,大家可以参阅. # -* ...

  6. python提取图片文字视频教学_Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)...

    一.爬虫记得基本方法 1.1 爬虫概述 ​网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使 ...

  7. python爬取文字和图片_Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)...

    [toc] 一.爬虫记得基本方法 1.1 爬虫概述 ​ 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...

  8. 爬虫训练(三):爬取酷狗音乐

    今天趁机一鼓作气,把简单爬虫内容一次学习完毕,最后以爬取酷狗音乐排行榜歌曲作为结束,然后对此次学习做一个整理和总结.而且前两篇有些混乱,这里把内容做一次阶段性总结. 一.安装包 爬虫三大包:reque ...

  9. 【Python爬虫实战】使用Selenium爬取QQ音乐歌曲及评论信息

    本文对使用到的技术仅做简单的介绍,若想了解更多,请前往相应的官网网站进行学习. 本文适合对爬虫相关知识接触不多的新手,主要是普及Selenium如何做爬虫,大佬请跳过. 1.Selenium简单介绍 ...

  10. 爬虫之selenium爬取斗鱼网站

    爬虫之selenium爬取斗鱼网站 示例代码: from selenium import webdriver import timeclass Douyu(object):def __init__(s ...

最新文章

  1. task_struct源码
  2. python坐标轴刻度为经纬度_python各类经纬度转换
  3. 理解Promise (3)
  4. boost::regex模块部分正则表达式相关的测试程序
  5. WebStorm For Mac下载及破解方法
  6. 使用SecureCrt远程登录Linux安装配置教程
  7. 谷歌开源EfficientNets:ImageNet准确率创纪录,效率提高10倍
  8. 【caffe-windows】 caffe-master 之Matlab中model的分类应用
  9. mysql 聚集函数 count 使用详解
  10. 用AlphaGo背后的人工智能做金融投资
  11. IDEA多款主题颜色推荐!炫酷经典!
  12. seo好学吗?怎么学seo?
  13. 万年历c语言程序设计免费,C语言程序设计万年历程序
  14. Google Earth 嵌入Qt应用程序
  15. 一步一步实现一个简单的OS(先小装一下)
  16. 印度小伙花不到10美元自制智能眼镜
  17. 如何更好的进行技术面试
  18. 支付宝重启免费时代, 让天下没有难做的生意!
  19. 用Python实现地理信息出图(含比例尺、指北针、图例)
  20. oracle远程数据库导入导出。

热门文章

  1. 好的医疗器械管理软件应该具备哪些功能?
  2. Access2016学习9
  3. 暗时间 pdf_时间管理最全的一篇:理论+实践+电子书
  4. 火狐浏览器快速代理插件(FoxyProxy Standard)
  5. 【STM32】ADC库函数、一般步骤详解(实例:内部温度传感器实验)
  6. PDF文件怎么编辑内容
  7. 斐讯K2路由器刷潘多拉(解决固件非法问题)(连接校园网锐捷)
  8. 马尔可夫链 ▏小白都能看懂的马尔可夫链详解
  9. python xlwt_Python模块xlwt对excel进行写入操作
  10. css美化button