Python 使用 BeautifulSoup 抓取网页
刚刚手贱不小心把前两篇 Python 的文章给删了,关键是我还没有备份!心里一万只草泥马奔腾而过。。。这件事情告诉我们,记得备份!记得备份!记得备份!重要的事情说三遍!
关于 BeautifulSoup
Beautiful Soup 提供一些简单的、Python 式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
安装 BeautifulSoup
下载完成后将安装包解压到某个目录中(示例为D:\tools)。解压后安装程序的目录为 D:\tools\beautifulsoup4-4.5.3。
在cmd命令行中使用 cd D:\tools\beautifulsoup4-4.5.3 命令进入程序目录。输入 python setup.py install 开始安装 BeautifulSoup。
使用 BeautifulSoup 抓取网页
安装完成以后就可以开始编码了,首先导入 urllib2 和 bs4。
1 | import urllib2 # urllib 库提供了一个从指定的 URL 地址获取网页数据 |
创建一个Resquest请求,其中 https://her-cat.com 是请求的站点地址,这里使用的是我的博客网址。
1 | request = urllib2.Request('https://her-cat.com') |
一些网站做了 User-Agent 判断,防止非正常用户访问页面,所以我们可以给这个 Request 请求添加一个请求头部数据,用于伪造 User-Agent。
1 | request.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36') |
获取 HTML 内容并创建 BeautifulSoup 对象
1 | html = urllib2.urlopen(request) |
然后我们这个 BeautifulSoup 对象使用一些方法来获取想要的内容。
1 | print(soup.prettify()) # 格式化输入html文本 |
查找该网页中所有的 a 标签:
1 | for link in soup.find_all('a'): |
关于 BeautifulSoup 的安装和使用就到此结束了~
这是一篇过去很久的文章,其中的信息可能已经有所发展或是发生改变。
原文作者: her-cat
原文链接: https://her-cat.com/2017/01/15/python-beautiful-soup-collect-page.html
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议