Python爬虫
Python 爬虫
1. 说明
做数据挖掘常常需要抓取网页内容,有些工具能通过分析 url 中的链接,把整个网站抓下来,也就是我们常说的爬虫工具。
有时候需要把交互网页的内容抓下来,比如:在 input 框中输入想查的内容,服务器端实时计算结果,或者从数据库中查询后返回结果。像整句翻译功能,查询食物的热量等等。下面介绍 Python 用 GET 和 POST 方式抓取实时内容的方法。
2. GET 方式
GET 方式把要查询的参数放在 url 地址中,非常简单。下例用 Python 程序,查询运单信息,写法如下:
1 | import urllib.request |
GET 方式,用问号和等号“addr?key=value”的方式,以明文的方式,向服务器传送要查询的内容。此时,就能打印出 html 网页的内容了。由此可见 python 的网络工具真的很方便。
有时候需要查询一些中文信息,比如查询樱桃的卡路里,需要字换中文字符,可使用以下方法:
1 | #-*- coding:utf-8 -*- |
3. POST 方式
POST 方法相对复杂一些,常用它传送用户名,密码等不可见的参数,使用它的主要问题是:不知道程序定义的关键字 key 是什么。一般可以通过查看页源码,看它表单的 input 中如何定义,但有时候源码中调用其它程序实现,不能直接看到关键字,下面介绍如何使用浏览器提供的工具,查看本地与服务器的交互信息,以确定关键字。
在浏览器中打开翻译网站(最好使用 chrome 或 chromium),按 F12 打开调试工具。选择其中的 Netword 选项卡。
在输入框中输入要翻译的内容“樱桃”,点“翻译”按钮时,查看调试工具中最核心的步骤是检测当前语言”langdetect”和翻译”v2transapi”,点击该项,即可以查看请求的具体内容和返回值。以检测当前语言为例,其中请求内容中就有其 request url(http://fanyi.baidu.com/langdetect),以及关键字 (post 参数 query)。把它们设置在 Python 中即可,具体方法如下:
1 | # coding:utf-8 |
此时,返回的是 json 串,数据少容易解析。
4. 参考
Python 网络爬虫(Get、Post 抓取方式)
https://blog.csdn.net/fly_yr/article/details/49005033