Python爬虫如何写?

Python爬虫如何写?,第1张

Python的爬虫库其实很多,像常见的urllib,requests,bs4,lxml等,初始入门爬虫的话,可以学习一下requests和bs4(BeautifulSoup)这2个库,比较简单,也易学习,requests用于请求页面,BeautifulSoup用于解析页面,下面我以这2个库为基础,简单介绍一下Python如何爬取网页静态数据和网页动态数据,实验环境win10+python3.6+pycharm5.0,主要内容如下:

Python爬取网页静态数据

这个就很简单,直接根据网址请求页面就行,这里以爬取糗事百科上的内容为例:

1.这里假设我们要爬取的文本内容如下,主要包括昵称、内容、好笑数和评论数这4个字段:

打开网页源码,对应网页结构如下,很简单,所有字段内容都可以直接找到:

2.针对以上网页结构,我们就可以编写相关代码来爬取网页数据了,很简单,先根据url地址,利用requests请求页面,然后再利用BeautifulSoup解析数据(根据标签和属性定位)就行,如下:

程序运行截图如下,已经成功爬取到数据:

Python爬取网页动态数据

很多种情况下,网页数据都是动态加载的,直接爬取网页是提取不到任何数据的,这时就需要抓包分析,找到动态加载的数据,一般情况下就是一个json文件(当然,也可能是其他类型的文件,像xml等),然后请求解析这个json文件,就能获取到我们需要的数据,这里以爬取人人贷上面的散标数据为例:

1.这里假设我们爬取的数据如下,主要包括年利率,借款标题,期限,金额,进度这5个字段:

2.按F12调出开发者工具,依次点击“Network”->“XHR”,F5刷新页面,就可以找到动态加载的json文件,具体信息如下:

3.接着,针对以上抓包分析,我们就可以编写相关代码来爬取数据了,基本思路和上面的静态网页差不多,先利用requests请求json,然后再利用python自带的json包解析数据就行,如下:

程序运行截图如下,已经成功获取到数据:

至此,我们就完成了利用python来爬取网页数据。总的来说,整个过程很简单,requests和BeautifulSoup对于初学者来说,非常容易学习,也易掌握,可以学习使用一下,后期熟悉后,可以学习一下scrapy爬虫框架,可以明显提高开发效率,非常不错,当然,网页中要是有加密、验证码等,这个就需要自己好好琢磨,研究对策了,网上也有相关教程和资料,感兴趣的话,可以搜一下,希望以上分享的内容能对你上有所帮助吧,也欢迎大家评论、留言。

百度一下你就知道,多么霸气的广告词啊!在我们生活、工作当中,遇到问题,很多时候都会上网查一下,这时候大家基本都会选择百度一下,但是由于对搜索引擎知识的匮乏,大多数时候,我们使用百度搜索出来的结果都是不上自己想要的,甚至还有很多人被百度推荐的广告给误导。百度是好东西,那么我们该如何来正确、高效地使用百度这个工具来解决我们的问题呢?今天蝈蝈就来给大家讲讲关于百度的知识,希望对你有帮助!

首先,我们先来介绍一下百度:百度,全球最大的中文搜索引擎、最大的中文网站。1999年底,身在美国硅谷的李彦宏看到了中国互联网及中文搜索引擎服务的巨大发展潜力,抱着技术改变世界的梦想,他毅然辞掉硅谷的高薪工作,携搜索引擎专利技术,于 2000年1月1日在中关村创建了百度公司。我们常说的百度,是指百度搜索引擎,也就是网站http://www.baidu.com。以下是网站首页截图:

搜索引擎可以根据我们输入的关键词,返回整个互联网中与之相关的网页信息,达到快速从互联网海洋中找到我们想要的内容的目的。可能很多人会问,这些信息是哪里来的?为啥百度就可以找到的,我们找不到?这就涉及到网络爬虫(也叫网络蜘蛛)的知识了,具体什么是网络爬虫,你去百度一下就知道了,哈哈!

接下来我们就来讲讲今天的重点:关键词

什么是关键词?顾名思义,就是关键的词语!所以关键词就是要我们自己组词,打个比方:突然有一天,你电脑开机蓝屏了,你想知道怎么回事,你可能会用百度查一下电脑是怎么回事,这时你该如何来输关键词呢?我猜想,大部分人应该会输入这些搜索内容 “我电脑坏了怎么办?”,“电脑无法开机”,“电脑蓝屏怎么办?”。那么怎么输入才能快速找到答案呢?输入上述词语又会得到什么结果呢?我们可以看看效果图:

由此可以看出,搜索“电脑蓝屏怎么办?”得到的结果更符合我们想要的答案,所以,要想得到精准的答案,我们要使用最接近问题的关键词,其实电脑蓝屏我们在搜索电脑蓝屏的同时,可以把蓝屏的错误码拿去一起搜索,这样得到的就是你这种蓝屏问题的相关信息,这样就更精准了。

对于我们输入的关键词,百度会使用分词,去拆分关键词,然后返回一系列结果,比如我们用“电脑蓝屏怎么办?”这个关键词在百度进行搜索,百度大概的处理流程是下面这样子的:

A、查找是否有网页包含“电脑蓝屏怎么办”这个完整的关键词,有的话优先返回到查找结果。

B、百度会拆分这个长关键词,比如会拆分成“电脑”、“蓝屏”和“怎么办”,以及他们的组合词,比如“电脑蓝屏”、“蓝屏怎么办”。

C、百度会分别用拆分出的这些关键词去查找是否有匹配网页,有的话进行返回 *** 作。

看我上面的截图,大家应该就明白分词是什么意思了。如果我们要想精准的搜索,那就必须避免百度分词, *** 作很简单,在输入的关键词前后加上英文的双引号,就可以实现精准匹配,避免百度分词,例如:电脑蓝屏,我们搜索的时候应该输入:"电脑蓝屏",使用英文的双引号引起来,这样搜索的到结果就是包含电脑蓝屏这个词的网页了,而不会出现只包含“电脑”、“蓝屏”的网页,如图:

其他搜索技巧

1、"" (英文半角双引号,表示精确匹配,上文已详细介绍)

如果输入的查询词很长,百度在经过分析后,给出的搜索结果中的查询词,可能是拆分的。如果你不想让百度拆分查询词,可以给查询词加上英文双引号,就可以达到这种效果。

例如:"你今天准备去哪里",搜索结果中的你今天准备去哪里八个字就不会是分开的。

2、- (减号,表示在某个范围内排除某些内容)

百度支持 - 功能,用于有目的地删除某些无关网页,语法是 A -B。

例如:要搜索武侠小说,但不包含 古龙 的搜索结果,可使用:武侠小说 -古龙

注意:前一个关键词,和减号之间必须有空格,否则,减号会被当成连字符处理,而失去减号语法功能。减号和后一个关键词之间,有无空格均可。

3、| (“逻辑或”搜索)

逻辑“或”的 *** 作,使用 “A|B” 来搜索或者包含关键词A,或者包含关键词B的网页。使用同义词作关键词并在各关键词中使用 “|” 运算符可提高检索的全面性。

如:"周杰伦"|"刘德华" 搜索即可。

4、intitle (仅对网页标题进行搜索)

网页标题通常是对网页内容的归纳。把查询内容范围限定在网页标题中,就会得到和输入的关键字匹配度更高的检索结果。使用的方式,是把查询内容中,特别关键的部分,用“intitle:”引起来。

例如:intitle:安徽农业大学

注意:intitle:和后面的关键词之间不要有空格。

5、site (把搜索范围限定在特定站点中)

有时候,如果知道某个站点中有自己需要找的东西,就可以把搜索范围限定在这个站点中,能提高查询效率。使用的方式,是在查询内容的后面,加上“site:站点域名”

例如:site:http://ahau.edu.cn 刘德华 注意,site:后面跟的站点域名,不要带http://;

注意:site:和后面站点名之间不要带空格,且site:后面跟的站点域名,不能加http://或者https://。

6、inurl (把搜索范围限定在url链接中)

网页url中的某些信息,常常有某种有价值的含义。于是,如果对搜索结果的url做某种限定,就可以获得良好的效果。实现的方式,是用“inurl:”,前面或后面写上需要在url中出现的关键词。

例如: inurl:lunwen 农业 可以查找关于phoroshop的使用技巧。上面这个查询串中的“photoshop”,是可以出现在网页的任何位置,而“jiqiao”则必须出现在网页url中。

注意,inurl:和后面所跟的关键词之间不要有空格。

7、filetype (特定格式的文档检索)

百度以 filetype:来对搜索对象做限制,冒号后是文档格式,如PDF、DOC、XLS等。通过添加 filetype: 可以更方便有效的找到特定的信息,尤其是学术领域的一些信息。

例如:filetype:pdf site:http://ahau.edu.cn "办法"

注意:filetype:和后面所跟的关键词之间不要有空格。

8、《》 (精确匹配/电影或小说)

书名号是百度独有的一个特殊查询语法。在其他搜索引擎中,书名号会被忽略,而在百度,中文书名号是可被查询的。加上书名号的查询词,有两层特殊功能,一是书名号会出现在搜索结果中;二是被书名号扩起来的内容,不会被拆分。书名号在某些情况下特别有效果,例如,查名字很通俗和常用的那些电影或者小说。

例如:查电影“手机”,如果不加书名号,很多情况下出来的是通讯工具——手机,而加上书名号后,《鬼吹灯》结果就都是关于电影方面的了。

9、『』 (查找论坛版块)

『』是直行双引号。 使用格式: 『论坛版块名称』 。

例如:『电影』。

PS:这个符号可以通过调出输入法的软键盘——“标点符号”,来找到使用。

10、利用后缀名来搜索电子书

网络资源丰富,有极多电子书。人们在提供电子书时,往往带上书的后缀名。因此,可以利用后缀名来搜索电子书。

例如:python pdf

最后,提醒大家一下,百度出来的结果,如果下面标识了“广告”的,那么就说明这内容是广告推广,大家在看广告的时候,请自己甄别真假,如图:

百度搜索方便了我们的生活,当然还有其他很多搜索引擎比如:谷歌、必应、360、搜狗等,掌握这些工具的使用技巧,可以极大地提高我们上网学习的效率,很多问题都可以在网上找到办法,授人以鱼不如授人以渔,今天蝈蝈把怎么解决电脑问题的方法都交给大家了,大家以后就可以自学成才了!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11588605.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存