Python爬虫练习小作文下载!辅导儿子作文有素材了!

it2023-04-10  75

准备工具

本机环境:Windows10专业版操作系统:64位Python版本:python 3.8运行工具:PyCharm 2020.2

步骤分析与代码实现

开始之前先导入一些库

import requests from lxml import etree

获取网页源代码 打开一个网站分析一下

1就是url 2是文章标题 3是内容 之后会放进代码里,先获取到这个界面的网页

url = requests.get('https://www.chnlib.com/zuowenku/') html = url.content.decode()#对乱码处理,这里没写内容默认值就是‘UTF-8’ print(html) 返回结果 这就是网页的代码,这就证明我们访问到这个页面了。获取作文篇章的url 已经可以获取到网页源代码了,接下来就解析我们要的文章在哪里,可以看到界面是每一个文章都是有一个链接的,F12可以查看网页源代码。点击右上角小箭头,选中网页的作文,可以在右边看见一个<a>标签这就是文章的链接,每一个文章都需要打开一个链接。 下面就要解析一下,怎么获取这些链接,通过源代码可以看出他们都是统一的格式都是在一个<div>下面有一个<h4>再下面获取<a>,下面就用xpath来获取这个<h4>标签,简单的方法就是在页面上右击<h4>有一个copy-> copy xpath 可以直接获取xpath路径构造一个xpath用来解析 doc = etree.HTML(html) #构造xpath解析对象@选取对象 contents = doc.xpath('//*[@class="list-group"]/div') print(contents)

查看一下contents发现是一个Element,看不到内容,这个时候就需要遍历这个Element,用for in去取<h4>下面<a>中的 href

获取每一个文章的url for content in contents: links = content.xpath('h4/a/@href') #获取超链接 print(links)

这样每一篇文章的url都获取到了,接下来就该获取每一篇文章的标题以及内容。下面仍然用xpath的方式去获取。

获取标题和文章内容content = doc.xpath('//*[@id="content"]/p/text()')#获取文本 title = doc.xpath('/html/body/div[4]/div/div[1]/div/div[1]/h1/text()') #获取标题 title1 = [t.replace('\r\n','') for t in title] 至此每一篇文章的标题和内容都获取到,最后把获取到的数据保存下来存储数据 with open('download/%s.txt' %title1[0], 'w', encoding='utf-8') as f: for items in content: f.write(items)

 

最新回复(0)