写在前面:爬虫是老鼠屎在进入实验室后接触的第一个任务,当时刚刚接触代码的老鼠屎一下子迎来了地狱难度的爬微博签到数据。爬了一个多月毫无成果,所幸带我的师兄从未给我疾言厉色,他给与了我最大的包容与理解。尽管无功而返,但是那一个月也给了老鼠屎充足的学习时间,让老鼠屎对爬虫有了一点点的理解和执念。今天老鼠屎由于项目原因又需要爬天气数据,所以在这里把老鼠屎的一点经验写在这里,希望能给向曾经的我一样迷茫的朋友们一点点帮助,付出的努力总会在不经意的时候绽放
更新一下下,原先的代码爬不出了,现在已经对代码进行了修改,可以爬出想要的内容啦
目录
1 所需要的库
2 爬取数据
2.1 获取 页内容
2.2 对 页进行解析
3 数据的整理与存储
4 全部代码
5 推荐资料
1 所需要的库
爬虫用到了requests库和BeautifulSoup库,这两个库分别用于对 页的获取和分析,对于数据的整理用到了pandas库。这三个库的安装非常简单,直接在cmd或者powershell当中pip install即可。唯一需要注意的是BeautifulSoup库安装时是在cmd中输入pip install beautifulsoup4。安装有问题的童鞋可以参考老鼠屎的旧博文进行安装。安装好后即可导入所需的库。
2 爬取数据
2.1 获取 页内容
这里,老鼠屎爬取的是天气 上青岛2016年3月的数据。
红色方框内容为 页的url,这里需要用requests库进行请求。
可以看一下response:
之后我们对代码进行一下改进。
这里用到一个很好用的软件postman,可以从其官 进行下载。安装好后的app是这个样子的
打开postman软件,将url输入红框标记的位置,点击send,可以看到下面得到了 页的源码。
下面我们提取headers部分。点击Headers,再点击code。
在语言的地方选择PythonRequest,可以得到headers部分。
将headers部分复制出来,但是这里要注意的是,要删去Postman-Token。之后再来构造一下我们的代码。
下面我们再来看一下response:
2.2 对 页进行解析
对 页解析用到BeautifulSoup库。
我们可以看一下现在的soup
这里有 页里所有的内容。我们需要从这里提取出我们想要的内容。我们回到要爬取的 页,按F12可以在Elements里面看到 页的源码。
这里我们要爬的是左下角的天气数据。我们点击中间上方红色框框住的箭头按钮,点击要爬取的内容,即可在右面 页源码快速找到它所对应的部分。
我们可以发现,所需要的内容都在标签下。这个下面有两个
- ,分别记录title和content。这里我们需要记录content的
- 记录每天的天气内容,每个
- 里面有不同记录不同的内容(如日期、天气、最高气温、最低气温等)。这样说起来比较抽象,可以结合Elements和下面这张图来看一下它大体的结构:
了解过它的结构后,我们可以用BeautifulSoup里面的find和find_all来选取想要的内容。
可以看一下现在的data_all的样子
这里有心的朋友可以发现,最后list里面一个是空的,这是因为,源码里面最后一个
- 里面记录的不是天气而是格式相关的内容。在后面数据存储整理时删除即可。
3 数据的整理与存储
接下来就是为数据存储做准备啦。把数据放到DataFrame里面,删除最后一行,之后保存至csv即可。
这里需要注意的是,因为内容中有中文,直接保存会乱码,所以保存时要加上encoding=”utf_8_sig”。详细情况可以参考老鼠屎的旧博文。
4 全部代码
5 推荐资料
最后推荐一点老鼠屎认为不错的资料。
- 嵩天老师的《Python 络爬虫与信息提取》课程。这个课程可以在中国大学MOOC 站上找到,是给免费的课程。老师的讲解十分清晰,对于想要入门爬虫的童鞋来说是个不错的选择。
- 崔庆才的《Python3 络爬虫开发实战教程》。里面的讲解非常细致,对于概念的讲解也深入浅出。
写在后面:尽管老鼠屎爬的这个是个非常简单的例子,但是老鼠屎希望通过自己的亲身经历鼓励那些迷茫的童鞋们不要抛弃不要放弃。希望大家都能够学有所成
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫urllib211385 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
- 。在记录content的
- 下面又分别具有很多