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

338 阅读2分钟

准备工具

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

步骤分析与代码实现

开始之前先导入一些库

import requests
from lxml import etree

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

![](https://p6-tt-ipv6.byteimg.com/large/pgc-image/f97f8d788f0c45df95f8bc14597a14c7)

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

url = requests.get('https://www.chnlib.com/zuowenku/')
html = url.content.decode()#对乱码处理,这里没写内容默认值就是‘UTF-8’
print(html)
  1. 返回结果

    这就是网页的代码,这就证明我们访问到这个页面了。

  2. 获取作文篇章的url
    已经可以获取到网页源代码了,接下来就解析我们要的文章在哪里,可以看到界面是每一个文章都是有一个链接的,F12可以查看网页源代码。点击右上角小箭头,选中网页的作文,可以在右边看见一个标签这就是文章的链接,每一个文章都需要打开一个链接。

    下面就要解析一下,怎么获取这些链接,通过源代码可以看出他们都是统一的格式都是在一个

查看一下contents发现是一个Element,看不到内容,这个时候就需要遍历这个Element,用for in去取

下面中的 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]
  1. 至此每一篇文章的标题和内容都获取到,最后把获取到的数据保存下来
  2. 存储数据 with open('download/%s.txt' %title1[0], 'w', encoding='utf-8') as f: for items in content: f.write(items)