栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python爬取网文存入txt文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬取网文存入txt文件

文章目录
  • 一、网络爬虫是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.数据请求
    • 2.数据解析
    • 3.数据存储
    • 4.完整代码

一、网络爬虫是什么?

百度百科给出的定义:网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

本文以爬取诗词名句网的<<水浒传>>为例

二、使用步骤 1.引入库

requests是python中一款基于网络请求的模块,功能非常强大,简单便捷,,效率极高,作用是模拟浏览器请求。

requests爬虫过程:
1.指定url
2.发起请求
3.获得响应数据
4.数据解析
5.持久化存储

Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能,作用是解析数据。
库的安装:
pip install requests
pip install bs4
代码如下(示例):

import  requests

from bs4 import BeautifulSoup
2.数据请求


首先在浏览器进入此网址,右键检查或者快捷键F12,找到网络,即network,博主的谷歌浏览器都汉化了,F5,即出现此页面。

请求网址即需要爬取的网址,请求方法是get,所有之后用的是requests.get请求,状态码是200说明网页正常,滚到底可以看到user-agent,不同电脑不同,所有不能盲目复制。

代码如下(示例):

#诗词名句网
url = 'https://www.shicimingju.com/book/shuihuzhuan.html'
#U-A伪装
headers ={
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
}
#请求响应
response = requests.get(url=url,headers=headers)
response.encoding='utf-8'#确保中文不乱码

requests.get或者requests.post都不是偶然的,得去网页获取。
参数headers也不可或缺,这是模拟浏览器访问,否则会被打掉。

2.数据解析

soup = BeautifulSoup(XXX.text,“lxml”)
注意:必须是text形式。
lxml是Python自带的解析器,功能强大。

#数据解析
soup = BeautifulSoup(response.text,'lxml')
#找到所有章节
li_list = soup.select(".book-mulu > ul > li")#select返回的是列表

select选择器返回的是一个列表,这里就找到了水浒传的全部章节了。

for li in li_list:
    #章节名
    title = li.a.text
    #章节网址
    chapter_url = 'https://www.shicimingju.com'+str(li.a['href'])
    #
    #headers共用
    #请求响应
    chapter_response = requests.get(url=chapter_url,headers=headers)
    chapter_response.encoding='utf-8'
    #数据解析
    charpter_soup = BeautifulSoup(chapter_response.text,'lxml')
    content = charpter_soup.find('div',class_='chapter_content').text


观察可知,a标签的href属性即是每章节的网址,不过是绝对网址,所以这样写:
chapter_url = ‘https://www.shicimingju.com’+str(li.a[‘href’])

然后内容同上,只不过是对章节网址进行请求和解析。

3.数据存储

数据存储前,我们要确保无误,先输出一下。

运行完后,文件夹会出现水浒传.txt,爬取成功,结束!

4.完整代码
import  requests

from bs4 import BeautifulSoup

#诗词名句网
url = 'https://www.shicimingju.com/book/shuihuzhuan.html'
#U-A伪装
headers ={
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
}
#请求响应
response = requests.get(url=url,headers=headers)
response.encoding='utf-8'
#数据解析
soup = BeautifulSoup(response.text,'lxml')
#找到所有章节
li_list = soup.select(".book-mulu > ul > li")#select返回的是列表
fp = open("book/水浒传.txt","w",encoding='utf-8')#fp之所以放这,是for循环每次只找到一章
for li in li_list:
    #章节名
    title = li.a.text
    #章节网址
    chapter_url = 'https://www.shicimingju.com'+str(li.a['href'])
    #headers共用
    #请求响应
    chapter_response = requests.get(url=chapter_url,headers=headers)
    chapter_response.encoding='utf-8'
    #数据解析
    charpter_soup = BeautifulSoup(chapter_response.text,'lxml')
    content = charpter_soup.find('div',class_='chapter_content').text
    #print(title+' 爬取完毕!')
    print(title+"n"+content)
    fp.write(title+content)#将章节名和内容写入txt

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/488211.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号