python数据爬取
⑴ python爬虫是干嘛的
爬虫技术是一种自动化程序。
爬虫就是一种可以从网页上抓取数据信息并保存的自动化程序,它的原理就是模拟浏览器发送网络请求,接受请求响应,然后按照一定的规则自动抓取互联网数据。
搜索引擎通过这些爬虫从一个网站爬到另一个网站,跟踪网页中的链接,访问更多的网页,这个过程称为爬行,这些新的网址会被存入数据库等待搜索。简而言之,爬虫就是通过不间断地访问互联网,然后从中获取你指定的信息并返回给你。而我们的互联网上,随时都有无数的爬虫在爬取数据,并返回给使用者。
爬虫技术的功能
1、获取网页
获取网页可以简单理解为向网页的服务器发送网络请求,然后服务器返回给我们网页的源代码,其中通信的底层原理较为复杂,而Python给我们封装好了urllib库和requests库等,这些库可以让我们非常简单的发送各种形式的请求。
2、提取信息
获取到的网页源码内包含了很多信息,想要进提取到我们需要的信息,则需要对源码还要做进一步筛选。可以选用python中的re库即通过正则匹配的形式去提取信息,也可以采用BeautifulSoup库(bs4)等解析源代码,除了有自动编码的优势之外,bs4库还可以结构化输出源代码信息,更易于理解与使用。
3、保存数据
提取到我们需要的有用信息后,需要在Python中把它们保存下来。可以使用通过内置函数open保存为文本数据,也可以用第三方库保存为其它形式的数据,例如可以通过pandas库保存为常见的xlsx数据,如果有图片等非结构化数据还可以通过pymongo库保存至非结构化数据库中。
⑵ 濡备綍鐢╬ython鐖鍙栫绣绔欐暟鎹
鐢╬ython鐖鍙栫绣绔欐暟鎹鏂规硶姝ラゅ备笅锛
1.棣栧厛瑕佹槑纭𨱍宠佺埇鍙栫殑鐩镙囥傚逛簬缃戦〉婧愪俊鎭镄勭埇鍙栭栧厛瑕佽幏鍙杣rl,铹跺悗瀹氢綅镄勭洰镙囧唴瀹广
2.鍏堜娇鐢ㄥ熀纭for寰鐜鐢熸垚镄剈rl淇℃伅銆
3.铹跺悗闇瑕佹ā𨰾熸祻瑙埚櫒镄勮锋眰(浣跨敤request.get(url)),銮峰彇鐩镙囩绣椤电殑婧愪唬镰佷俊鎭(req.text)銆
4.鐩镙囦俊鎭灏卞湪婧愪唬镰佷腑,涓轰简绠鍗旷殑銮峰彇鐩镙囦俊鎭闇瑕佺敤Beautifulsoup搴揿规簮浠g爜杩涜岃В鏋愶纴锲犱负鏄痟tml淇℃伅锛岄噰鐢╤tml.parser镄勬柟寮忚繘琛岃В鏋愩
5.闅忓悗瑕佸湪婧愮绣椤典腑杩涗竴姝ュ畾浣岖洰镙囦俊鎭鍦ㄧ绣椤垫簮浠g爜涓镄勪綅缃锛氩湪缃戦〉涓璅12阌锛屾煡鐪嫔厓绱犱俊鎭锛屼娇鐢ㄥ乏涓婅掔殑鎸夐挳杩涗竴姝ユ煡鐪嬬洰镙囦俊鎭浣岖疆銆
6.浣跨敤beautifululsoup杩涗竴姝ュ畾浣嶆簮浠g爜淇℃伅銆
7.链钖庝娇鐢ㄥ惊鐜鍙栧嚭鍗曚釜鍏幂礌淇℃伅銆傞栧厛鍒嗘瀽鍗曚釜淇℃伅镄勪綅缃锛氩畠鍦╱l鍒楄〃涓嬶纴浣跨敤寰鐜鍙栧嚭铹跺悗瀹氢綅鍗曚釜鍏幂礌涓淇℃伅镄勪綅缃锛屽苟鍙栧嚭淇℃伅銆
8.链缁埚氨寰楀埌鐩镙囦俊鎭鍒楄〃浜嗐
⑶ 如何通过网络爬虫获取网站数据
这里以python为例,简单介绍一下如何通过python网络爬虫获取网站数据,主要分为静态网页数据的爬埋山差取和动态网页数据的爬取,实验环境win10+python3.6+pycharm5.0,主要内容如下:
静态网页数据
这里的数据都嵌套在网页源码中,所以直接requests网页源码进行解析就行,下面我简单介绍一下,这里以爬取糗事网络上的数据为例:
1.首先,打开原网页,如下,这里假设要爬取的字段包括昵称、内容、好笑数和评论数:
接着查看网页源码,如下,可以看的出来,所有的数据都嵌套在网页中:
2.然后针对以上网页结构,我们就可以直接编写爬虫代码,解析网页并提取出我们需要的数据了,测试代码如下,非常简单,主要用到requests+BeautifulSoup组合,其中requests用于获取网页源码,BeautifulSoup用于解析网页提取数据:
点击运行这个程序,效果如下,已经成功爬取了到我们需要的数据:
动态网页数据
这里的数据都没有在网页源码中(所以直接请求页面是获取不到任何数据的),大部分情况下都是存储在一唯唯个json文件中,只有在网页更新的时候,才会加载数据,下面我简单介绍一下这种方式,这里以爬取人人贷上面的数据为例:
1.首先,打开原网页,如下,这里假设要爬取的数据包括年利率,借款标题,期限,金额和进度:
接着按F12调出开发者工具,依次点击“Network”->“XHR”,F5刷新页面,就可以找打动态加载的json文件,如下,也就是我们需要爬弯皮取的数据:
2.然后就是根据这个json文件编写对应代码解析出我们需要的字段信息,测试代码如下,也非常简单,主要用到requests+json组合,其中requests用于请求json文件,json用于解析json文件提取数据:
点击运行这个程序,效果如下,已经成功爬取到我们需要的数据:
至此,我们就完成了利用python网络爬虫来获取网站数据。总的来说,整个过程非常简单,python内置了许多网络爬虫包和框架(scrapy等),可以快速获取网站数据,非常适合初学者学习和掌握,只要你有一定的爬虫基础,熟悉一下上面的流程和代码,很快就能掌握的,当然,你也可以使用现成的爬虫软件,像八爪鱼、后羿等也都可以,网上也有相关教程和资料,非常丰富,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。