美文网首页Python爬虫作业@IT·互联网程序员
蜗牛爬行日记——正则表达式与第一个爬虫程序

蜗牛爬行日记——正则表达式与第一个爬虫程序

作者: 喵喵陀佛 | 来源:发表于2017-05-03 23:08 被阅读313次
路漫漫其修远兮,吾将上下而求索

先上一个爬虫程序的成品截图,然后一行行代码来细说。

一、导入requests库和正则表达式

首先是导入requests库和re模块。使用re模块,python 会将正则表达式转化为字节码,利用 C 语言的匹配引擎进行深度优先的匹配。

用Python写爬虫,提取网站信息有很多种方法,第三行被注释掉的代码,导入beautifulsoup就是其中一种方法,但本篇文章只说明如何使用正则表达式作匹配。

二、添加header

如果不添加该行代码的话,程序会报错。例如出现urllib2.HTTPError: HTTP Error 403: Forbidden的错误。这是由于网站禁止爬虫。

我们可以加上头信息,伪装成浏览器访问.。

其中,agent就是请求的身份,如果没有写入请求身份,那么服务器不一定会响应,所以要在headers中设置agent。接下来是写清楚电脑配置和浏览器配置。

我查了一下资料,此处关于header的内容细究下去还是挺多的,而且分为好几类header。

比如,在登录之后的知乎首页按F12->network,点击第一个请求,查看headers,可看到General、Response Headers、Request Headers三个分类,有General

Request URL: https://www.zhihu.com/

Request Method:GET

在此不赘述,提供我用的具体代码。

headers={"User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}

三、定义获取用户id的函数

主要说一下re的主要功能函数。

常用的功能函数包括:compile、search、match、split、findall(finditer)、sub(subn)、compile等等参数。这里使用了re.findall(pattern, string[, flags])函数。

该作用是:在字符串中找到正则表达式所匹配的所有子串,并组成一个列表返回。

下面这个博客里面有关于正则表达式的使用举例,大家可以参考一下。

http://blog.csdn.net/u014015972/article/details/50541839

上面的程序只用到了(.*?)这一正则表达式,即写出用户id前后一定数量的代码,即可匹配出用户id。可见以下的使用举例:

***************************************

# .*?的使用举例
c = re.findall('xx.*?xx', secret_code)
printc# ['xxIxx', 'xxlovexx', 'xxyouxx']

***************************************

四、输入要爬的网站url,调用获取id的函数

不同的网站有不同的正则表达式,这里我选的是百度贴吧里的二次元吧。

https://tieba.baidu.com/p/5097778035

程序是没有错的,但是由于方法的局限性,除了爬取出用户id之外,还匹配了一些别的文本。

其实上面那个正则表达式还可以改得更简单些。?

罗罗攀老师讲课的时候用的是糗事百科的网站,正则表达式是<h2>(.*?)</h2>,大家也可以试一下。

等我学会了用beautifulsoup写爬虫会再放一篇文章上来的,弥补现有程序的局限性。

如果有大神知道怎样解决上面这个问题,也请留言指点一二。

相关文章

  • 蜗牛爬行日记——正则表达式与第一个爬虫程序

    先上一个爬虫程序的成品截图,然后一行行代码来细说。 一、导入requests库和正则表达式 首先是导入reques...

  • 蜗牛爬行

    去年,一直迷茫的我在简书里终于找到了属于自己的一片乐土,让生活的沉淀及感悟有了抒发的窗口,也让自己远离城市的...

  • 爬虫介绍

    我们可以想象爬虫就是在互联网上爬行的一个蜘蛛 什么是爬虫? 爬虫就是请求 网站并提取 数据的的自动化程序

  • 蜗牛爬行日记——判断闰年

    过了一个慵懒的周末,进度应该被别的童鞋拉下不少/(ㄒoㄒ)/~~。所以我觉得蜗牛爬行日记这个题目还真是特别应景。 ...

  • 我的小蜗牛

    我的小蜗牛非常的调皮,它时不时就会爬到盖子上。 爬行时,蜗牛会留下液体,是用腹足来爬行的。 蜗牛非常的机灵,...

  • 爬行的蜗牛

    30天的时间眨眼就过去了,在这30天收获最大的就是可以写出很多字了,不管写的内容好与坏,终于不是拿起笔来想半天,也...

  • 蜗牛

    我们常用蜗牛爬行来形容,速度慢,但问你又不是爬行准确,应该是,滑行,蜗牛走过的地方都会留下它分泌的粘液,蜗牛这样是...

  • 爬虫基础系列urllib——构造请求头(3)

    爬虫与反爬虫 爬虫:自动获取网站数据的程序 反爬虫:使用技术手段防止爬虫程序爬取数据 反扒机制1 判断用户是否是浏...

  • 2-Python 基本的正则表达式

    本章概要:PyCharm的安装与配置正则表达式符号与方法正则表达式的应用举例实例--制作文本爬虫 1、PyChar...

  • Python爬虫之《电影天堂》电影详情+下载地址爬取

    纪念自学Python以来,自己成功写出的第一个爬虫程序......

网友评论

    本文标题:蜗牛爬行日记——正则表达式与第一个爬虫程序

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