python爬百度贴吧etree用户名_Python 爬虫练习: 爬取百度贴吧中的图片

背景:最近开始看一些Python爬虫相关的知识,就在网上找了一些简单已与练习的一些爬虫脚本

实现功能:1,读取用户想要爬取的贴吧

2,读取用户先要爬取某个贴吧的页数范围

3,爬取每个贴吧中用户输入的页数范围内的每个帖子的链接

4,爬取每个帖子中的图片,并下载到本地。

开发环境:Python 3.7 , lxml, urllib

思路分析:

1,指定贴吧URL的获取

比如我们进入“秦时明月汉时关”吧

?后面为查询字符串,“%E7%A7%A6%E6%97%B6%E6%98%8E%E6%9C%88“是贴吧名称“秦时明月”的url编码。

这样我们就可以通过构造请求进入每一个贴吧了,代码实现如下:

importurllib.parse#贴吧url前半部分

url = "http://tieba.baidu.com/f?"value= input("请输入要爬取的贴吧名称:")#将查询字符串转换为url编码形式

key = urllib.parse.urlencode({"kw":value})#组合完整的贴吧url url = url +key#查看完整url

print url

运行程序,这里输入“天行九歌”作为演示,可以得到天行九歌吧的完整链接如下:

这样就可以获取任意贴吧的链接了。

二、获取贴吧指定页数的链接:

我们进入天行九歌吧,取出该贴吧第2页到底4页的url,如下:

我们发现,每一页的url变化的是pn的值,依次增加50,结合上面贴吧完整的url,要想获得每一页的链接可以如下

importurllib.parse

url= "http://tieba.baidu.com/f?"value= input("请输入要爬取的贴吧名称:")

key= urllib.parse.urlencode({"kw":value})#贴吧完整url

url = url +key

begin_page= int(input("请输入起始页:"))

end_page= int(input("请输入终止页:"))for page in range(begin_page, end_page+1):

pn= (page-1)*50

#组合出贴吧每一页的url

full_url = url + "&pn=" +str(pn)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值