python写爬虫之提取网页的内容(筛选)

您所在的位置:网站首页 锚文本代码 python写爬虫之提取网页的内容(筛选)

python写爬虫之提取网页的内容(筛选)

2023-12-16 13:42| 来源: 网络整理| 查看: 265

       利用网络爬虫获取简单信息的基本步骤是:提取网页源码——>筛选内容——>保存内容

一、提取网页源码

       取网页源码方法很多,常用的库有:urllib库,requests库等。。。 具体的例程可访问我的上篇文件:

       https://blog.csdn.net/scx2006114/article/details/81389331 

二、筛选内容

       在我的上篇文章里使用的筛选的方法是通过正则表达式完成,但正则表达式编写过程复杂,而且容易出错。在此篇文章中我向大家替换的方法,主要是应用库来代替正则表达式。

      ①使用 XPath

      ②使用 Beautiful Soup

      ③使用 pyquery

       这三种库具体的介绍和使用教程可阅读《Python 3网络爬虫开发实战 ,崔庆才著》(文末附书本下载链接)。我以Beautiful Soup库为例,实战爬取网页内容。

      目标:爬取网页简书中文章小标题和作者

                 环境:python3.65   pycharm软件

                 思路:提取网页的源码—>筛选源码—>输出结果(保持文件)

首先我们先来看看简书网页的源码:

优秀的女人,喜欢坚持这些习惯

题记:要做这样的女子:面若桃花、心深似海、冷暖自知、真诚善良、触觉敏锐、情感丰富、坚忍独立、缱绻决绝。坚持读书、写字、听歌、旅行、上网、摄影,有...

悦读时刻 39 236

       通过观赏上面的源码会发现有很多节点,源码的父节点是li,子节点有很多,我们需要观察的我要获取的内容,是a这个子节点,Beautifulsoup库就是通过网页中的节点来筛选不同的内容。

       要使用Beautifulsoup库就得先导入这个库:from bs4 import BeautifulSoup,然后将这个库初始化并选择解析器:

soup = BeautifulSoup(get_html('https://www.jianshu.com/'), 'lxml'),方法BeautifulSoup()中第一个参数是网页源码,第二个参数是使用解析器的类型,此处使用的是lxml解析器。其次通过find_all()方法搜索父节点和子节点:for li in soup.find_all(name='li'),最后要输出文本:print(a.string)。具体实现代码如下:

#初始化BeautifulSoup库,并设置解析器 soup = BeautifulSoup(get_html('https://www.jianshu.com/'), 'lxml') print(get_html('https://www.jianshu.com/')) for li in soup.find_all(name='li'): #遍历父节点 for a in li.find_all(name='a'): #遍历子节点 print(a.string) #输出结果

完整代码附上(仅供参考):

import requests import re from bs4 import BeautifulSoup def get_html(url): headers = { 'User-Agent':'Mozilla/5.0(Macintosh; Intel Mac OS X 10_11_4)\ AppleWebKit/537.36(KHTML, like Gecko) Chrome/52 .0.2743. 116 Safari/537.36' } #模拟浏览器访问 response = requests.get(url,headers = headers) #请求访问网站 html = response.text #获取网页源码 return html #返回网页源码 soup = BeautifulSoup(get_html('https://www.jianshu.com/'), 'lxml') #初始化BeautifulSoup库,并设置解析器 print(get_html('https://www.jianshu.com/')) for li in soup.find_all(name='li'): #遍历父节点 for a in li.find_all(name='a'): #遍历子节点 if a.string==None: pass else: print(a.string) #输出结果

Python 3网络爬虫开发实战PDF文件的链接: 链接:https://pan.baidu.com/s/1ARPajjsK--QIAjPGKxbW6Q 提取码:asd6 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3