python3 爬虫学习-根据关键词爬取百度百科内容

小白编了好久才写出来,记录一下免得之后再用的时候都忘了还得重新学~

学习爬虫最开始是学习了慕课上的python课程,然后学习了慕课和网易云上的爬虫教程。这两个自己去查一下就好了~

开始还比较费劲,毕竟熟悉需要时间么,而且python也不太熟悉。

关于python版本:我一开始看很多资料说python2比较好,因为很多库还不支持3,但是使用到现在为止觉得还是pythin3比较好用,因为编码什么的问题,觉得2还是没有3方便。而且在网上找到的2中的一些资料稍微改一下也还是可以用。


好了,开始说爬百度百科的事。

这里设定的需求是爬取北京地区n个景点的全部信息,n个景点的名称是在文件中给出的。没有用到api,只是单纯的爬网页信息。


1、根据关键字获取url

   由于只需要爬取信息,而且不涉及交互,可以使用简单的方法而不需要模拟浏览器。

可以直接

http://baike.baidu.com/search/word?word="guanjianci"

for l in view_names:
    '''http://baike.baidu.com/search/word?word='''  # 得到url的方法
    name=urllib.parse.quote(l)
    name.encode('utf-8')
    url='http://baike.baidu.com/search/word?word='+name

这里要注意关键词是中午所以要注意编码问题,由于url中不能出现空格,所以需要用quote函数处理一下。

关于quote():

在 Python2.x 中的用法是:urllib.quote(text)。Python3.x 中是urllib.parse.quote(text)。按照标准,URL只允许一部分ASCII 字符(数字字母和部分符号),其他的字符(如汉字)是不符合URL标准的。所以URL中使用其他字符就需要进行URL编码。URL中传参数的部分(query String),格式是:name1=value1&name2=value2&name3=value3。假如你的name或者value值中的『&』或者『=』等符号,就当然会有问题。所以URL中的参数字符串也需要把『&=』等符号进行编码。URL编码的方式是把需要编码的字符转化为%xx的形式。通常URL编码是基于UTF-8的(当然这和浏览器平台有关)

例子:

比如『我,unicode 为 0x6211,UTF-8编码为0xE60x880x91,URL编码就是 %E6%88%91

Python的urllib库中提供了quote和quote_plus两种方法。这两种方法的编码范围不同。不过不用深究,这里用quote就够了。


2、下载url

用urllib库轻松实现,见下面的代码中def download(self,url)


3、利用Beautifulsoup获取html


  • 5
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值