python爬虫可以爬小说_Python爬虫实战(2)-爬取小说"斗罗大陆3龙王传说”(超详细)...

前言

首先,我们来回忆一下上篇爬虫实战讲了什么:讲到了requests和bs4和一些网页基本操作。如果有不熟悉的朋友可以去看看:

今天我们用re模块+requests来实战爬取一下,并写入TXT文件中,效果图如下:

a3168ef782ef

image

实战

我们今天来爬取一下5200小说网的小说“罗大陆3龙王传说”并写入TXT文件中,我们先分析一下章节网址的规律:

从而得知规律是网址数字的增加。

步骤:

1.先获取网页数据,用requests获取,这个大家都会吧?上篇实战文章已经讲过了,这里的url我们一会再赋值:

import requests

def get_data(url):

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'}

data = requests.get(url,headers=headers)

# 因为直接请求出来的是乱码,所有设置一下编码格式

data.encoding = "gbk"

print(data.text)

2.根据re模块去提取你想要的信息-标题和内容

首先先讲一下符号 (.?)的用法,就是表示匹配xx和xx间的任何字符。用法就是‘xx(.?)xx’

标题:

a3168ef782ef

获取代码:

title = re.findall('

(.*?)

', data.text, re.S)

内容:

a3168ef782ef

image

获取代码:

content = re.findall('

(.*?)
', data.text, re.S)

获取之后会有各种的符号,我们可以把它代替出来:

if content.__len__()>0:

str = content[0].replace("    ", "").replace("
", "")

3.就是通过循环依次获取当前的网页数据,并写入TXT文件中。

完整代码如下:

import requests

import re

#创建TXT文件,其中的"a+"是一种模式,表示用于读写,追加模式。

f = open("C:/Users/Administrator/Desktop/qi.txt","a+")

def get_data(url):

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'}

data = requests.get(url,headers=headers)

# 因为直接请求出来的是乱码,所有设置一下编码格式

data.encoding = "gbk"

#获取网页数据成功

if data.status_code==200:

title = re.findall('

(.*?)

', data.text, re.S) #标题

content = re.findall('

(.*?)
', data.text, re.S) #内容

if content.__len__()>0 and title.__len__()>0:

str =title[0]+"\n\n"+ content[0].replace("    ", "").replace("
", "") #标题和内容拼在一起

f.write(str) #写入TXT

#获取失败

else:

pass

if __name__ == '__main__':

#这里为了给大家演示,只是取了前一百章

urls = ["http://www.5200xs.org/52002847/{}.html".format(str(i)) for i in range(1081834, 1081933)]

for i in urls:

get_data(i)

f.close()

希望对刚入门的朋友有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值