python爬虫怎么获取伪元素(::after、::before)中的文本_Python 爬虫“学前班”!学会免踩坑...

作者 | 喵叔
责编 | 胡巍巍
出品 | CSDN(ID:CSDNnews)
爬虫应用的广泛,例如搜索引擎、采集数据、广告过滤、数据分析等。当我们对少数网站内容进行爬取时写多个爬虫还是有可能的,但是对于需要爬取多个网站内容的项目来说是不可能编写多个爬虫的,这个时候我们就需要智能爬虫。
智能爬虫目前有三种:
1. 基于网页内容的爬虫
当网页含有大量需要提取的信息时,我们就需要用到基于网页内容的爬虫。该爬虫会将 HTML 视为文本并利用 NLP 技术进行处理。
虽然说这种基于网页内容的爬虫可以减少爬虫的数量,但是需要人工参与进行训练 NLP 模型,没有 AI 开发经验或 AI 开发经验很少的程序员很难写出这类爬虫,并且爬虫爬取时间很长效率还很低。
2. 基于DOM结构的爬虫
基于DOM结构的爬虫相对来说比较简单,就是将 HTML 解析为 DOM 树,然后根据语法结构进行提取信息,这种方法效率和准确性都比前一种方法高。
3. 基于视觉的爬虫
基于视觉的爬虫的开发难度同样很高,它是通过浏览器接口或者浏览器内核对目标页面进行袁燃,然后基于网页的视觉规律提取网页数据。这种爬虫需要利用神经网络中的 CNN 卷积神经网络获取页面特定区域的内容。
目前比较常用的只能爬虫框架是 Readability 和 Newspaper 。下面我们就来看一下这两个框架的讲解。
Newspaper
Newspaper 是一个利用 NLP 的智能爬虫框架,可以从页面中提取出很多内容。安装这个爬虫框架需要首先安装依赖:
shell
sudo apt-get install libxml2-dev libxslt-dev
sudo apt-get install libjpeg-dev zlib1g-dev libpng12-dev
在上述安装中如果出现 libpng12-dev 出现错误,就需要安装 libpng-dev 。
接下来就需要安装 NLP 语料库:
shell
curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
最后我们安装 Newspaper 爬虫框架:
shell
pip install newspaper3k
下面我们就通过一个例子来看一下 newspaper 框架怎么使用:
python
from newspaper import Article
url = 'https://www.ithome.com/0/445/071.htm'
article = Article(url, language='zh')
article.download
article.parse
print('作者', article.authors)
print('标题', article.title)
print('发布日期', article.publish_date)
print('正文', article.text)
article.nlp
print('关键词', article.keywords)
print('摘要', article.summary)
上述代码中 language='zh' 告诉 newspaper 我们抓取的是中文网页。newspaper 会首先下载页面,然后利用 parse 方法解析页面。页面解析后就可以获取到作者、标题、发布日期等内容,如果要提取关键字和摘要,就可以使用 nlp 方法。
我利用多个不同网站的 URL 进行测试发现,部分内容的作者和发布日期会解析不出来,有些内容甚至获取的不正确,但是对于英文内容还是识别率很高的。如果要提高对中文的识别率,可以更换 newspaper 中的使用的分词库(目前 newspaper 使用的分词库是结巴分词),或者改变所使用的内容识别模型。
Readability
Readability 是一个爬虫算法,它在 python 中的名称叫 readability-lxml 同样我们也可以通过 pip 命令来安装:
shell
pip install readability-lxml
安装完之后我们只需导入 readability 即可,我们来看一下例子:
python
import requests
from readability import Document
url = "https://www.ithome.com/0/444/503.htm"
html = requests.get(url).content
doc = Document(html)
print("title:
更多推荐


所有评论(0)