本帖最后由 执念i_ 于 2018-8-9 19:07 编辑
这次爬小说站笔趣阁各大分类里的小说:www.biqutxt.com
大概能把这个站一大半爬下来
交代环境:Python3.6,pyquery
分析网页:
发现网页分类的url是 '首页地址' + '分类全拼'
eg:http://www.biqutxt.com/xuanhuanxiaoshuo/
然后大分类下的文章列表很简单
发现每页只有30本书
每页的url是 '首页地址' + '分类全拼' + '分类序号' + '_' + '页码' + '.html'
eg:http://www.biqutxt.com/xuanhuanxiaoshuo/1_1.html
爬取思路:
1.请求大分类,比如玄幻小说救赎:请求 http://www.biqutxt.com/xuanhuanxiaoshuo
2.获取大分类下小说列表的总页码
3.请求每一页的链接,获取每一页每本书的链接
4.请求每本书的链接,然后获取每一章的详细信息和书本简介
5.剔除不需要的信息,12条最新章节的信息
6.保存为TXT文件
代码太长了,这里贴一部分的,完整源码在下面有下载:
[Python] 纯文本查看 复制代码 from pyquery import PyQuery as pq
import requests
from requests.exceptions import RequestException
import os
import multiprocessing
def get_index_fenlei(urls): # 获取网页内容
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/67.0.3396.99 Safari/537.36'
}
try:
html = requests.get(url=urls, headers=headers)
if html.status_code == 200:
return html.content.decode('gbk')
return None
except RequestException:
return None
def parse_one_page(html, page_1, url, classification): # 解析类别转换为pyquery对象
doc = pq(html)
pages = doc('#pagelink .last').text() # 获取总页码数
print("此分类共有 :", pages, '页')
list = [] # 创建列表存放页码链接
for page_2 in range(int(pages)): # 总页码循环获取每一页的链接
page_2 = page_2 + 1
page_url = url + str(page_1) + '_' + str(page_2) +'.html' #拼接页码链接
# print(page_url)
list.append(page_url)
print('页码链接获取成功-------------')
yemashu = 1
for book in list: # 遍历页码列表
print('正在请求第---', str(yemashu), '---页')
html = get_page_bookurl(book) # 请求每一页
pare_page_bookurl(html, classification) # 获取每一页书的链接信息
yemashu = yemashu + 1
def get_page_bookurl(bookurl): # 解析页码网页转换为pyquery对象,获取每本书的链接
url = bookurl
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/67.0.3396.99 Safari/537.36'
}
try:
html = requests.get(url=url, headers=headers)
if html.status_code == 200:
print('请求本页成功')
return html.content.decode('gbk')
return None
except RequestException:
return None
小白学习作品,请各位大佬多多指教
wwwbiqutxtcom.rar
(2.14 KB, 下载次数: 96)
源码下载:https://www.lanzouj.com/i1lyqah
评分免费免费免费{:1_919:}
|