c爬虫抓取网页数据(利用网络爬虫获取简单信息的基本步骤(1)_光明网(图))
优采云 发布时间: 2021-09-27 12:13c爬虫抓取网页数据(利用网络爬虫获取简单信息的基本步骤(1)_光明网(图))
使用网络爬虫获取简单信息的基本步骤是:提取网页源代码->过滤内容->保存内容
一、提取web源代码
获取web源代码的方法有很多。常用的库有:urllib库、请求库等。。。特定例程可以访问我以前的文件:
二、过滤器内容
在我之前的文章中使用的过滤方法是通过正则表达式,但正则表达式的编写过程复杂且容易出错。在本文章中,我替换的方法主要是使用库替换正则表达式
① 使用XPath
② 用漂亮的汤
③ 使用pyquery
这三个库的具体介绍和使用教程可以阅读由崔庆才撰写的Python 3 web crawler开发实践(书籍下载链接附在本文末尾)。以美丽的汤库为例,我实际上是在抓取web内容
目标:在网页上登上短篇小说的副标题和作者文章
环境:Python3.65 pycharm软件
想法:提取网页的源代码->过滤源代码->输出结果(保留文件)
首先,让我们来看看建树网页的源代码:
//upload-images.jianshu.io/upload_images/2729710-fbb42957dc006ab2.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/150/h/120
优秀的女人,喜欢坚持这些习惯
<p class="abstract">
题记:要做这样的女子:面若桃花、心深似海、冷暖自知、真诚善良、触觉敏锐、情感丰富、坚忍独立、缱绻决绝。坚持读书、写字、听歌、旅行、上网、摄影,有...
悦读时刻
39
236
</p>
通过查看上述源代码,您将发现有许多节点。源代码的父节点是Li,并且有许多子节点。我们需要观察的是子节点A。美容汤库通过网页中的节点过滤不同的内容
要使用Beauty soup库,必须首先导入库:从BS4导入Beauty soup,然后初始化库并选择解析器:
Soup=beautifulsup(get#u HTML(';#39;,';lxml';),方法beautifulsup()中的第一个参数是网页源代码,第二个参数是使用的解析器类型。这里使用lxml解析器。其次,find#all()方法搜索父节点和子节点:查找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) #输出结果
Python3网络爬虫开发实践PDF文件链接:链接:提取代码:asd6