spider爬虫练习,爬取顶点小说网,小说内容。

------------恢复内容开始------------

我这里练习爬虫的网站是顶点小说网,地址如下:

https://www.booktxt.net/

我这里以爬取顶点小说网里面的凡人修仙传为例子:

首先观察界面:

第一章:

第二章:

由上面可得出规律,每点一次下一章,url后面的数字就会自动加1。

爬虫主要分为3步:

第一步:构建url列表

    def url_list(self):
        url = "https://www.booktxt.net/1_1562/{}.html"
        url_list = []
        for i in range(self.page):
            url_list.append(url.format(507240 + i))
        return url_list

使用for循环,传入一个参数,没循环一次url后面的数字就会自动加1,把他放到一个新的url_list列表里面。

第二步:发送请求,获取响应结果

    def send_request(self, url):
        res = requests.get(url, headers=self.headers)
        res.encoding = "GBK"
        html_str = res.text
        # 获取html对象
        html = etree.HTML(html_str)
        return html

这里用到了requests库,需要传入一个url参数,返回html对象。

第3步:解析返回的内容,使用xpath提取想要的数据

for循环遍历url_list列表,同时调用send_request函数,传入url函数,遍历网址发送请求,返回html对象,通过xpath提取想要的数据。最后可以把解析出来的数据保存到本地

    def run(self):
        for url in self.url_list():
            print(url)
            html = self.send_request(url)
            html_tatle = html.xpath("//div[@class=‘bookname‘]/h1/text()")
            print(html_tatle[0])

            html_content = html.xpath("//div[@id=‘content‘]/text()")

            for content in html_content:
                print(content)

运行结果如下:

代码如下:

import requests
from lxml import etree

class FictionSpider():
    def __init__(self, page):
        self.page = page
        self.headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"}

    def url_list(self):
        url = "https://www.booktxt.net/1_1562/{}.html"
        url_list = []
        for i in range(self.page):
            url_list.append(url.format(507240 + i))
        return url_list

    def send_request(self, url):
        res = requests.get(url, headers=self.headers)
        res.encoding = "GBK"
        html_str = res.text
        # 获取html对象
        html = etree.HTML(html_str)
        return html

    def run(self):
        for url in self.url_list():
            print(url)
            html = self.send_request(url)
            html_tatle = html.xpath("//div[@class=‘bookname‘]/h1/text()")
            print(html_tatle[0])

            html_content = html.xpath("//div[@id=‘content‘]/text()")
            print(html_content)
            for content in html_content:
                print(content)

if __name__ == ‘__main__‘:
    FictionSpider(3).run()

原文地址:https://www.cnblogs.com/xiamaojjie/p/12308319.html

时间: 2024-10-10 14:47:01

spider爬虫练习,爬取顶点小说网,小说内容。的相关文章

Python爬虫之爬取煎蛋网妹子图

这篇文章通过简单的Python爬虫(未使用框架,仅供娱乐)获取并下载煎蛋网妹子图指定页面或全部图片,并将图片下载到磁盘. 首先导入模块:urllib.request.re.os import urllib.request import re import os urllib.request模块用于获取HTML页面数据 re模块用于通过正则表达式解析并截取HTML页面图片url os模块用于文件夹相关操作 代码不多,直接贴出来,代码解释在注释中: def crawl_jiandan(page, p

爬虫实例——爬取煎蛋网OOXX频道(反反爬虫——伪装成浏览器)

煎蛋网在反爬虫方面做了不少工作,无法通过正常的方式爬取,比如用下面这段代码爬取无法得到我们想要的源代码. import requests url = 'http://jandan.net/ooxx' print requests.get(url).text 执行上述代码,你得到的结果应该跟我一样: 煎蛋网应该是通过检测headers来判断是否爬虫,要想获取正常的源代码,需要伪装成浏览器. # -*- coding: utf-8 -*- import re import requests from

python爬虫:爬取易迅网价格信息,并写入Mysql数据库

本程序涉及以下方面知识: 1.python链接mysql数据库:http://www.cnblogs.com/miranda-tang/p/5523431.html   2.爬取中文网站以及各种乱码处理:http://www.cnblogs.com/miranda-tang/p/5566358.html   3.BeautifulSoup使用 4.原网页数据信息不全用字典的方式,把不存在的字段设置为空 详细代码: #!/usr/bin/python # -*- encoding:utf-8 -*

爬虫:爬取海词的翻译内容

在爬取海词的时候遇到了一个问题,在异步加载的时候,需要一个t值,但是这个t值是js加载出来的,直接拼接的,我们无法从网页中得到:  当在搜索框输入单词的时候:你在干嘛 替换下图中的page的值就能达到翻页的目的: 那么当前的目的就是要能够找到这段js代码,同时获取对应输入的t的值,来重新组合url 真正的url只需要如下内容: 我提前把关键字和t都处理了,写成了字典的形式, key:你在干嘛  ff[key]:WuqarCRs {“你好”:“WuqarCRs”} #提前处理成了这种,方便提取 u

python学习之爬虫(一) ——————爬取网易云歌词

接触python也有一段时间了,一提到python,可能大部分pythoner都会想到爬虫,没错,今天我们的话题就是爬虫!作为一个小学生,关于爬虫其实本人也只是略懂,怀着"Done is better than perfect"的态度硬着头皮开始了这篇文章的撰写!好了,废话不多说! 先说一下今天我们的目的,作为一个音痴但不影响我对于音乐的执着,所以今天我们爬取的是网易云音乐,我们将会通过代码爬取歌词并写入到本地. 作为新手,我很本能就打开页面复制了url,然后用Beautifulsou

python爬虫入门练习,使用正则表达式和requests爬取LOL官网皮肤

刚刚python入门,学会了requests模块爬取简单网页,然后写了个爬取LOL官网皮肤的爬虫,代码奉上 #获取json文件#获取英雄ID列表#拼接URL#下载皮肤 #导入re requests模块 import requestsimport reimport time def Download_LOL_Skin(): #英雄信息Json文件地址:https://lol.qq.com/biz/hero/champion.js #获取英雄信息列表 json_url = "https://lol.

【Python3 爬虫】U11_爬取中国天气网

目录 1.网页分析 2.代码实现 1.网页分析 庚子年初,各种大事件不期而至,又赶上最近气温突变,所以写个爬虫来爬取下中国天气网,并通过图表反映气温最低的前20个城市. 中国天气网:http://www.weather.com.cn/textFC/hb.shtml 打开后如下图: 从图中可以看到所有城市按照地区划分了,并且每个城市都有最低气温和最高气温,通过chrome查看Elements,如下: 从上图可以看到展示当天的数据,那么<div class='conMidtab'>..这个标签则没

Python项目之我的第一个爬虫----爬取豆瓣图书网,统计图书数量

今天,花了一个晚上的时间边学边做,搞出了我的第一个爬虫.学习Python有两个月了,期间断断续续,但是始终放弃,今天搞了一个小项目,有种丰收的喜悦.废话不说了,直接附上我的全部代码. 1 # -*- coding:utf-8 -*- 2 __author__ = 'Young' 3 4 import re,urllib #urllib : 网页访问,返回网页的数据.内容 5 def my_get(ID):# 封装成函数方便调用 6 html = urllib.urlopen("https://r

爬虫----爬取校花网视频

import requests import re import time import hashlib def get_page(url): print('GET %s' %url) try: response=requests.get(url) if response.status_code == 200: return response.content except Exception: pass def parse_index(res): obj=re.compile('class="i