爬虫是怎么回事"/>
这篇文章告诉你:Python网络爬虫是怎么回事
在上一篇文章已经给大家介绍了“【用Python自动办公】为什么越来越受到青睐?” 。今天就给大家介绍一下“Python网络爬虫”到底是怎么回事吧!
什么是Python网络爬虫
Python网络爬虫,又被称为网页蜘蛛、网络蚂蚁和网络机器人等。网络爬虫是一种程序,主要用于搜索引擎,它将一个网站的所有内容与链接进行阅读,并建立相关的全文索引到数据库中,然后跳转到另一个网站上。索引擎(Search Engine)是指根绝一定的策略、运用特定的计算机程序从互联网上是搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户索引擎包括全文索引、目录索引、元搜索引擎等。
说白了就是爬虫可以模拟浏览器的行为做你想做的事,订制化自己搜索和下载的内容,并实现自动化操作。比如:浏览器可以下载小说,但是有时候并不能批量下载,那么爬虫的功能就有用武之地了。
为什么Python适合做网络爬虫
实现爬虫技术的编程环境有很多种,Java,Python,C++等都可以用来爬虫。但是为什么大家都选择了Python?还是因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实现你想要的功能;跨平台,对Linux和windows都有不错的支持。更重要的,Python也是数据挖掘和分析的好能手。这样爬取数据和分析数据一条龙的服务都用Python真的很便捷。
Python网络爬虫小案例
接下来就用几个实例让大家感受一下Python真正的强大吧。
京东页面爬取
这个简单,京东的这个页面没有给页面审查,可以无障碍地访问它:
import requests
def getHtmlText(url):try:r=requests.get(url)r.raise_for_status()return r.text[:500]except:return 'Error!'
def main():url = '.html'text=getHtmlText(url)print(text)
if __name__ == '__main__':main()
亚马逊页面爬取
这个时候我们用上面的代码发现页面无法访问了,问题在哪?我们可以输出r.encoding和r.apparent_encoding,查看编码是否相同。进一步如果他们相同,那么问题可能出现在amazing页面对访问者审查,我们可以打印request.headers,查看request信息的heads头部:
>>>print(r.request.headers)
{
'User-Agent': 'python-requests/2.23.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*','Connection': 'keep-alive'
}
我们发现我们的程序直接告诉了amazing这是一个’User-Agent’: 'python-requests/2.23.0’机器人访问,因此,我们要更改我们的headers参数为一个标准浏览器身份标识:Mozilla/5.0,代码如下:
import requests
def getHtmlText(url):try:kv={'user-agent':'Mozilla/5.0'}r=requests.get(url,headers=kv)r.raise_for_status()r.encoding=r.apparent_encodingreturn r.textexcept:return 'Error!'
def main():url = ''text=getHtmlText(url)print(text)
if __name__ == '__main__':main()
Python网络爬虫之所以现在越来越受到成人的青睐。一方面是因为它简单易用的语法和网站的快速开发等优点,另一方面是在数据采集方面有好的优势,比如采集速度快,比人来操作可能要快一千倍一万倍都不止等。如果您对网络爬虫感兴趣,欢迎您的随时咨询。
更多推荐
这篇文章告诉你:Python网络爬虫是怎么回事
发布评论