美文网首页Python基础教程python入门基础学习
尽管百度是个大企业,然而python还是可以轻易爬取数据!

尽管百度是个大企业,然而python还是可以轻易爬取数据!

作者: 梦想编程家小枫 | 来源:发表于2018-11-15 21:44 被阅读4次

    先说下我写这个爬虫的思路吧:

    环境:Windows7,Python3.5,pycharm

    加小编python学习群:813542856可以获取python各类学习资料哦!

    使用到的库:requests,re,selenium,time

    具体步骤:

    一、搜索贴吧

    先搜索一个存在的贴吧(比如python爬虫),得到的网页链接

    然后搜索一个不存在的贴吧(比如sad213),得到的网页链接

    对比两个链接可知,如果返回的链接里包含tieba.baidu.com/f?ie=utf-8,则该贴吧存在。所以我利用selenium模拟浏览器,根据返回的结果判断搜索的贴吧是否存在。

    二、显示贴吧首页的帖子

    在搜索到贴吧之后,我们要进入该贴吧并查看该贴吧首页上的帖子,这部分实现起来不算难。

    首先是获取网页源码,用requests.get()方法请求网页,然后打印出text内容,可以找到如下部分。

    要提取发帖人的名字和帖子主题,我选择用正则表达式来实现,具体代码如下:

    titles = re.findall('

    authors = re.findall('title="主题作者: (.*?)"', res.text)

    这样我们就能成功获取首页上的帖子信息了。

    三、查看某一个帖子

    要查看一个帖子里的内容,第一步是和上面的步骤一样的,用get方法请求网页,然后打印text,再用正则表达式提取回复人的名字和回复内容。

    接下来的步骤花了我不少时间,因为很多人在评论的时候会发表情,而这些表情我们是无法将它显示出来的,因此我选择将表情对应的链接显示出来,如果要看别人发的是什么表情,直接点链接进去就能看到了。对于评论中的图片,我也是这么处理的,将图片的链接显示出来。

    这一步还有一个坑,就是因为有些人的回复是带有回复框的,也就是说这些人的评论是包裹在div里的,用上面的方法是无法得到他们的回复的。

    通过观察网页源码,我发现可以用正则表达式匹配到这部分回复,然后对于这些回复,也要进行处理后再显示出来。

    comment_list2 = re.findall('post_bubble_middle_inner">(.*?)

    comment = comment_list2[num].replace('

    ', ' ').replace('', ' ')

    这样我们就能够搜索贴吧并且进入贴吧查看我们想看的帖子了==

    具体源码如下:

    相关文章

      网友评论

        本文标题:尽管百度是个大企业,然而python还是可以轻易爬取数据!

        本文链接:https://www.haomeiwen.com/subject/qrmufqtx.html