python爬虫,记录爬取全球所有国家-首都的简单爬虫

本来以为简单至极,没想到获取数据还是花费了大把功夫。先上图

<table>
<tr>
<td>
<strong>1</strong>
</td>
<td>
<a>中国</a>
</td>
<td>
北京
</td>
</tr>
</table>

看起来很简单吧?总共有6个表格,217国家-首都。所有的关键数据都在中。只要循环就能拿到数据,关键是怎么拿。一下是我的方法。

def get_data(response):#解析网页soup = BeautifulSoup(response, 'lxml')result = soup.find_all('h2')state = []for s in result:'''有大量带'\t' '\n'字符串,直接替换。'''state.append(s.string.replace("\t", '').replace("\n", '').replace(" ", ''))'''所有的国家都在<table>标签内,<table>子标签有<tr><td><td>中的内容:1   中国  北京  18  以色列     耶路撒冷    35  巴勒斯坦    耶路撒冷 2   韩国  首尔  19  也门  萨那  36  卡塔尔     多哈3   朝鲜  平壤  20  菲律宾     马尼拉     37  黎巴嫩     贝鲁特 费了不少功夫才测出以下的获取的方法'''def get_data(response):#解析网页soup = BeautifulSoup(response, 'lxml')result = soup.find_all('h2')state = [] #获取州数据for s in result:'''有大量带'\t' '\n'字符串,直接替换。'''state.append(s.string.replace("\t", '').replace("\n", '').replace(" ", ''))'''所有的国家都在<table>标签内,<table>子标签有<tr><td><td>中的内容:1   中国  北京  18  以色列     耶路撒冷    35  巴勒斯坦    耶路撒冷 2   韩国  首尔  19  也门  萨那  36  卡塔尔     多哈3   朝鲜  平壤  20  菲律宾     马尼拉     37  黎巴嫩     贝鲁特 费了不少功夫才测出以下的获取的方法'''country = {}filter_string = ["序号", "国家", "首都", "首都或首府", "国家或地区"]table = soup.find_all('table')index = 0for tag in table:td_data = []for tr in tag.find_all("tr"):for td in tr.find_all("td"):#过滤包含序号,国家,首都的字段不保存,t同时过滤序号数字的value = td.get_text().replace("\t", '').replace("\n", '').replace("\xa0", '')if value in filter_string or value.isdigit():continueelse:if "" != value:td_data.append(value)country.update({state[index] : td_data})index = index + 1return country

country就是获取到的州-国家-首都数据。整个爬虫核心的就在这里,分析网页结构花了很多功夫,实在想不出更好的方法了。各位大佬如果还有更好的方法,欢迎指导。

数据保存到csv

def save_csv(data):#数据进一步处理:因为现在把,所有的数据都拿到了,还没有进行拆分变成#亚洲,中国,北京#亚洲,以色列, 耶路撒冷#打算遍历字典,保存到新的列表中country = []for key, values in data.items():for index in range(0, len(values), 2):country.append([key, values[index], values[index+1]])#直接在test.csv中追加内容。with open('country.csv', 'w', newline='', encoding='utf-8') as f:filednames = ['州', '国家', '首都']writer = csv.DictWriter(f, fieldnames=filednames, restval='None')#如果是新建的文件,需要写入表头'A', 'B', 'C', 'D', 'E', '总结',就使用writer.writeheader() #字典形式写入需要带表头for item in country:writer.writerow({'州':item[0], '国家':item[1], '首都':item[2]})     for item in country:writer.writerow({'州':item[0], '国家':item[1], '首都':item[2]})

以上便是使用urllib+beautifulsoup库做的一个小爬虫,数据已经保存到csv。

python爬虫,记录爬取全球所有国家-首都的简单爬虫相关推荐

  1. python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析

    这篇文章主要介绍了python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析的实例,帮助大家更好的理解和学习使用python.感兴趣的朋友可以了解下 一.环境准备 python3.8.3 ...

  2. python爬虫实战--爬取猫眼专业版-实时票房

    小白级别的爬虫入门 最近闲来无事,发现了猫眼专业版-实时票房,可以看到在猫眼上映电影的票房数据,便验证自己之前学的python爬虫,爬取数据,做成.svg文件. 爬虫开始之前 我们先来看看猫眼专业版- ...

  3. Python爬虫深入 爬取当当网商品基本信息

    Python爬虫深入 爬取当当网商品基本信息 使用scrapy爬虫框架,创建爬虫项目. 基本命令: scrapy startproject dangdang scrapy genspider -l s ...

  4. python+selenium+phantomJS爬取国家地表水水质自动监测实时数据发布系统——动态网页爬虫

    一.关于phantomjs 1.介绍 PhantomJS是一个为自动化而生的利器,它本质上是一个基于webkit内核的无界面浏览器,并可使用JavaScript或CoffeeScript进行编程.由于 ...

  5. 如何去使用Python爬虫来爬取B站的弹幕数据?

    哔哩哔哩众所周知是弹幕的天堂,视频观看人数越多,弹幕也就越多.今天小千就来教大家如何去使用Python开发一个爬虫来爬取B站的弹幕数据. 1.弹幕哪里找? 平常我们在看视频时,弹幕是出现在视频上的.实 ...

  6. python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250

    0.前言 新接触爬虫,经过一段时间的实践,写了几个简单爬虫,爬取豆瓣电影的爬虫例子网上有很多,但都很简单,大部分只介绍了请求页面和解析部分,对于新手而言,我希望能够有一个比较全面的实例.所以找了很多实 ...

  7. Python爬虫 - scrapy - 爬取妹子图 Lv1

    0. 前言 这是一个利用python scrapy框架爬取网站图片的实例,本人也是在学习当中,在这做个记录,也希望能帮到需要的人.爬取妹子图的实例打算分成三部分来写,尝试完善实用性. 系统环境 Sys ...

  8. 【Python爬虫】爬取猫眼电影票房

    题记 本文旨在记录爬取猫眼电影国内票房榜单的过程,以及对脚本内字体文件反爬函数的说明. 环境 系统: Windows 10 Python版本: Python 3.7 爬取时间: 2019.3.19 难 ...

  9. python爬虫之爬取多篇含有关键词的文章标题和内容

    python爬虫之爬取多篇含有关键词的文章标题和内容 实现的功能 需要用到的库 需要对html一些标签有一定的了解 代码设计思想 源代码 功能优化 Java版本 实现的功能 输入想要搜索的关键字和输入 ...

最新文章

  1. Linux C编程--fork()详解
  2. 利用CSS、JavaScript及Ajax实现图片预加载的三大方法
  3. oracle内连接使用,Oracle中的联合查询-自然连接/外连接/内连接
  4. java 字母金字塔_LeetCode756:金字塔转换矩阵(JAVA题解)
  5. 五、扩展Orchard(一) First Steps into Orchard
  6. MVC Tutorial Movie DIY
  7. 一款被大家低估的微服务场景下性能问题排查神器!
  8. 成熟的云管理是什么样的?
  9. 毕设项目系列教程-智慧校园管理系统
  10. w10系统打印服务器怎样出来,win10怎么打开关闭打印机服务教程步骤
  11. 《商务与经济统计》练习:案例3-4:天使巧克力的网络交易
  12. MFC 为按钮加载位图 CBitmapButton
  13. 相对路径和绝对路径及表示
  14. 怎样挑选鱼头 鱼头怎么做好吃
  15. win7装xp(win7装xp双系统教程)
  16. Vue项目对接微信公众号踩坑日记
  17. [原创]手把手教你Linux下的多线程设计--Linux下多线程编程详解(一)
  18. 8 位阿里大佬合著“Dubbo 微服务进阶笔记”
  19. html5 webgis开发,WebGIS开发-openlayers5入门(1)
  20. 【FAQ】鸿蒙3.0无法读取系统日历数据,也无法写入新的日历数据

热门文章

  1. OpenJudge-021:鸣人和佐助
  2. 《万里长江图》告诉我们:金沙江是长江的正源
  3. 解决centos8 中安装mysql5.7.26时 libtinfo.so.5()(64bit)被依赖的问题
  4. Linux-通过LVM对服务器磁盘进行动态扩容
  5. 网页抓取及信息提取(三)
  6. matlab死亡时间推测实验,尸检——关于死亡时间推测的基本手法及操作方式
  7. Java—手写服务器
  8. 信息安全相关从业人员必须收藏,100%有用!
  9. IE网页出现js错误修复方法_离水的鱼_新浪博客
  10. python爬虫笔记一:爬取豆瓣中指定的明星所有图片