比比芭比波比
大家好,我是预备秃顶族
今天和大家分享一个python抓取小说代码(超级简单)
下面就上正题
import requests
import parsel
# 浏览器的用户代理(查看方法:浏览器地址栏输入about:version)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/81.0.4044.138 Safari/537.36 '
}
# 通过地址获取目类中所有章节的跳转地址
def get_book_links(book_url):
response = requests.get(book_url)
response.encoding = response.apparent_encoding
html = response.text
sel = parsel.Selector(html)
links = sel.css('dd a::attr(href)').extract()
return links
# 输入你想要下载的小说的目录页地址
htmlurl = "https://www.booktxt.net/10_10581/"
links_much = get_book_links(htmlurl)
# 给你要下载的小说起个响亮的名字
fo = open('我是一个原始人.txt', 'ab')
#开工了
for link in links_much:
url = htmlurl + link
# 获取输入地址返回结果
response = requests.get(url, headers=headers)
# 返回结果的编码规则使用访问地址的编码规则
response.encoding = response.apparent_encoding
# 整个html页面
html = response.text
# 使用 parsel将字符串变成对象
sel = parsel.Selector(html)
# 获取整个页面的标题
title = sel.css('.bookname h1::text').extract_first()
print(title)
# 获取整个页面内容
contents = sel.css('#content::text').extract()
contents2 = [title]
for content in contents:
# 删除掉不需要的行
if content.strip().find('请记住本书首发域名:') and content.strip().find(url):
contents2.append(content.strip())
fo.write(("\n".join(contents2)).encode('utf-8'))
下次再会
锦柯刺秦王