Python爬虫实践:抓取糗事百科段子

1 下载量 40 浏览量 更新于2024-08-29 收藏 55KB PDF 举报
"本教程是Python爬虫包BeautifulSoup的实例教程,主要讲解如何通过Python爬取糗事百科的段子。首先不依赖BeautifulSoup,而是通过基础的Python库完成网页抓取。" 在Python爬虫开发中,BeautifulSoup是一个非常流行的库,用于解析HTML和XML文档。本实例分为两部分,第一部分是使用基础的Python库访问网页并抓取源代码,第二部分是使用正则表达式提取所需信息。 **第一部分:访问网址并抓取源码** 这部分主要使用了`urllib`和`urllib2`这两个Python标准库。首先导入所需的模块: 1. `urllib`模块提供了基本的URL操作功能。 2. `urllib2`模块用于更复杂的HTTP请求,如添加自定义头部信息。 代码中设置了User-Agent头部,模拟浏览器访问,避免被网站识别为爬虫。然后,创建了一个`Request`对象,并使用`urlopen`打开网页,获取网页内容。如果出现HTTPError或URLError,程序会打印错误信息并退出。最后,将获取的二进制内容解码成UTF-8字符串。 ```python url = 'http://www.qiushibaike.com/textnew/page/1/?s=4941357' user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36' headers = {'User-Agent': user_agent} try: request = urllib2.Request(url=url, headers=headers) response = urllib2.urlopen(request) content = response.read() except urllib2.HTTPError as e: print(e) exit() except urllib2.URLError as e: print(e) exit() print(content.decode('utf-8')) ``` **第二部分:利用正则表达式提取信息** 在获取了网页源码后,可以使用正则表达式对内容进行解析。正则表达式是一种强大的文本处理工具,可以用来查找、替换或者分割字符串。 首先分析网页源码,找到段子内容的特征,然后编写相应的正则表达式。由于`\n`不在`.`的匹配范围内,所以在编写正则时需特别注意,可能需要使用其他方式来匹配换行符。 ```python import re # 观察源码,确定正则表达式 pattern = r'你的正则表达式模式' # 使用re模块的findall函数,找到所有匹配的段子 matches = re.findall(pattern, content) # 打印匹配到的信息 for match in matches: print(match) ``` 这个实例中,没有提供具体的正则表达式,需要根据实际的网页结构和内容来定制。例如,如果段子被包含在特定的HTML标签中,如`<p>`或`<div>`,则可以使用这些标签作为匹配的线索。 **总结** 这个实例展示了如何不使用BeautifulSoup从网页中抓取信息。虽然这种方法可以工作,但它通常不如使用专门的解析库如BeautifulSoup或lxml那样高效和灵活。BeautifulSoup库提供了更高级别的接口,能够更方便地解析和导航HTML文档,特别是对于复杂的页面结构,使用BeautifulSoup能大大简化工作流程。在后续的教程中,可能会引入BeautifulSoup来改进这个爬虫,使其更加高效和健壮。
2016-09-21 上传
beautifulsoup4-4.5.1.tar.gz Beautiful Soup是一个Python的一个库,主要为一些短周期项目比如屏幕抓取而设计。有三个特性使得它非常强大: 1.Beautiful Soup提供了一些简单的方法和Python术语,用于检索和修改语法树:一个用于解析文档并提取相关信息的工具包。这样你写一个应用不需要写很多代码。 2.Beautiful Soup自动将输入文档转换为Unicode编码,并将输出文档转化为UTF-8编码。你不需要考虑编码,除非输入文档没有指出其编码并且Beautiful Soup无法自动检测到,这时你需要指出原来的编码方式。 3.Beautiful Soup位于一些流行的Python解析器比如lxml和html5lib的上层,这允许你使用不同的解析策略或者牺牲速度来换取灵活性。 Beautiful Soup解析你提哦那个的任何东西,并且替你完成树的便利。你可以告诉它“查找所有的链接” 或者“查找类externalLink的所有链接”或者“查找所有url地址匹配foo.com的链接”或者“查找使用粗体的表头,返回那些粗体的文本”。 在一些设计不良的网站上很难获取的宝贵的数据,使用Beautiful Soup便可以获得。 原先需要运行几个小时工程,使用Beautiful Soup仅需要几分钟而已。 下面说一下在Windows系统下安装Beautiful Soup4的步骤和方法 1.到http://www.crummy.com/software/BeautifulSoup/网站上上下载,最新版本是4.3.2。 2.下载完成之后需要解压缩,假设放到D:/python下。 3.运行cmd,切换到D:/python/beautifulsoup4-4.3.2/目录下(根据自己解压缩后的目录和下载的版本号修改), cd D:/python//beautifulsoup4-4.3.2 4.运行命令: setup.py build setup.py install 5.在IDE下from bs4 import BeautifulSoup,没有报错说明安装成功。需要重启IDE