python爬虫百度贴吧标题数据

-#python爬虫百度贴吧标题

一 、Requests安装

使用pip命令进行安装

  • windows :pip install requests
  • mac os x/linux:sudo pip install requests

强调说明下第二种:默认情况下,mac下没有安装pip,所以需要我们自己进行安装,在终端下使用命令:sudo easy_install pip
很多人同样使用sudo easy_install requests进行安装,但是我不推荐,因为使用easy_install无法进行卸载。
OK,接下来继续进行。在这里我使用的IDE是PyCharmCE,在mac下自带的Python版本过低,无使用我们引入的requests,所以需要进行下载。进入Python官网https://www.python.org/downloads/进行对应版本的下载。

那么现在进行requests的安装,在终端下输入sudo pip install requests,提示成功安装后,在/Library/Python/2.7/site-packages发现Requests文件夹,但是此时你使用 import requests语句会提示“ImportError: No module named requests”错误,所以此时你需要更改Project Interpreter 选择 File -> Settings ->Project-> Single-thread-crawler ->Project Interpreter
如图1所示:
图1

那么以上步骤完成后,python爬虫所需要的requests构建完成。

二、使用Requests获取网页的源代码

两种方式:

  • 直接获取源代码
  • 更改Http头获取源代码(反爬虫机制)

首先我们需要先获取源代码,代码如下

#-*-coding:utf-8-*-
import requests

#下面三行是编码转换的功能,大家现在不用关心。
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

html = requests.get('http://tieba.baidu.com/f?kw=大连理工大学城市学院&ie=utf-8&pn=0')
print html.text

(此网页不需要更改头就可以获取,并不是所有的网站用这几行就可以提取的,有的网站需要我们更改头,把程序伪装成浏览器进行访问,下一篇关于python爬虫的文章将会讲解更改头的获取方法)

Python的默认编码文件是用的ASCII码,你将文件存成了UTF-8也没用,解决办法很简单

只要在文件开头加入 # -- coding: UTF-8 -- 或者 #coding=utf-8 就行了。
运行代码将会获取百度贴吧的html标题

三、使用正则表达式提取每个帖子的标题

源码

观察源码你可以发现规律,每一个标题的都在”class=”j_th_tit “>**< a>”之间

既然观察出如下规律,我们就可以设计出相应的代码

#-*-coding:utf8-*-

import requests
import re

#下面三行是编码转换的功能,大家现在不用关心。
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

html = requests.get('http://tieba.baidu.com/f?kw=大连理工大学城市学院&ie=utf-8&pn=0')

html.encoding = 'utf-8' #将编码转为utf-8FA防止中文乱码。

title = re.findall('class="j_th_tit ">(.*?)</a>',html.text,re.S)

for TITLE in title:
    print TITLE

执行结果:
执行结果

在这里我们讲解下re.findall(‘class=”j_th_tit “>(.*?)’,html.text,re.S)

我们使用re.findall来进行数据匹对,根据规律设计出 class=”j _ th_tit “>(.?)< /a> ,其中(. ?)代表的意思是非贪心算法:各个排查

以上就是一个简单的 爬虫百度贴吧标题的程序,明天将会更新一篇关于更改Http 头获取源码,并且获取多页内容

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值