首页 编程教程正文

小白学爬虫之pyquery爬取小说站

piaodoo 编程教程 2020-02-22 22:09:43 1098 0 python教程

本文来源吾爱破解论坛

本帖最后由 执念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, 下载次数: 86) 2018-8-9 18:31 上传 点击文件名下载附件
源码
下载积分: 吾爱币 -1 CB

源码下载:https://www.lanzous.com/i1lyqah
评分免费免费免费{:1_919:}

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7733.html

搜索