第一次的爬虫小试(爬取网页文本)

一、导入需要的模块:

在这里插入图片描述

  • Urllib和requests模块是python中发起http请求最常见的模块,但是requests模块使用更加方便简单。

  • lxml解析网页

  • docx是创建一个document文档对象

二、网页中找到对应的标签:

(1)、首先我们要先在网页中找到文本所在的范围(如图(有开发者工具的浏览器按下F12即可查看)):

在这里插入图片描述
可以看出我们在选中 class = content 的标签时是对应我们需要的文本所在的位置

我们在class = content下面找到文本所在的标签
在这里插入图片描述
在 p 标签中我们找到了我们所需要的文字
那么我们就在此写下

texts = root.xpath('//div[@class="content"]/p/text()')

(2)、接下来我们要找到网页的页码超链接:

在这里插入图片描述
找到页码超链接之后我们发现他只是一个更改数字的页码链接并不是js
这就好办了

pageNum = []  #建立列表

url = 'https://www.dati56.com/post/13635.html?ipage={}'  # 所需要的网址
for i in range(1, 23):			#因为页码就只有22页所以这里要限制范围

    pageNum.append(i)       # 将页码加入到一个列表里

for item in pageNum:

    Url = url.format(item)     # 将页面数字利用format方法进行填充Url(建议用大小写区分不然下面的url=Url有点问题就只输出第一页的内容)

注意:强调一点,最后一行的Url = url 我是前一个用了大写后面用的小写,如果用成小写,后面运行出来是循环截取但是直截取了第一页的内容,所以这里还是写成大写的(也可以自己去研究一下哈。)

三.、提取文本:

因为小编也是一个初学者,这串代码是在别处借鉴的稍后我会在后面写出出处

    if __name__ == '__main__':
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                                 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'}

        document = Document()


        rs = requests.get(url=Url, headers=headers)

        root = etree.HTML(rs.content)

        texts = root.xpath('//div[@class="content"]/p/text()')#网址内的分布

        for text in texts:

            str(text).replace('\xa0\xa0\xa0', '')

            document.add_paragraph(text)

            print(text)#输出爬取的值
            
            document.save('劳动通论.docx')#导出并创建成word文档

四、下面是源码:

'''
功能:爬取网页中的“文本”并导出成docx
CSDN作者:莫莫先生
修改:Sherry
问题:现还不能一次性在同一个文件下导出,
		需要在Pycharm或者Anaconda运行输出后自行复制粘贴
'''
import requests

from lxml import etree

from docx import Document

pageNum = []

url = 'https://www.dati56.com/post/13635.html?ipage={}'  # 网址
for i in range(1, 23):
    # 将页码加入到一个列表里
    pageNum.append(i)

for item in pageNum:
    # 将页面数字利用format方法进行填充Url
    Url = url.format(item)

    if __name__ == '__main__':
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
                                 'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'}

        document = Document()


        rs = requests.get(url=Url, headers=headers)

        root = etree.HTML(rs.content)

        texts = root.xpath('//div[@class="content"]/p/text()')#网址内的分布

        for text in texts:

            str(text).replace('\xa0\xa0\xa0', '')

            document.add_paragraph(text)

            print(text)

            document.save('劳动通论.docx')


这是原作者:https://blog.csdn.net/weixin_44835732/article/details/103047765
最后如果有什么不懂的、或者有更好的意见,欢迎留言,私信交流。
侵联删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫腻余腥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值