我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python3 爬虫 requests

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python3 爬虫 requests

刚学Python爬虫不久,迫不及待的找了一个网站练手,新笔趣阁:一个小说网站。

安装Python以及必要的模块(requests,bs4),不了解requests和bs4的同学可以去官网看个大概之后再回来看教程

刚开始写爬虫的小白都有一个疑问,进行到什么时候爬虫还会结束呢?答案是:爬虫是在模拟真人在操作,所以当页面中的next链接不存在的时候,就是爬虫结束的时候。

1.用一个queue来存储需要爬虫的链接,每次都从queue中取出一个链接,如果queue为空,则程序结束
2.requests发出请求,bs4解析响应的页面,提取有用的信息,将next的链接存入queue
3.用os来写入txt文件

需要把域名和爬取网站对应的ip 写入host文件中,这样可以跳过DNS解析,不这样的话,代码运行一段时间会卡住不动

'''
抓取新笔趣阁https://www.xbiquge6.com/单个小说
爬虫线路: requests - bs4 - txt
Python版本: 3.7
OS: windows 10
'''
import requests
import time
import sys
import os
import queue
from bs4 import BeautifulSoup 
# 用一个队列保存url
q = queue.Queue()
# 首先我们写好抓取网页的函数
def get_content(url):

    try:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36',
        }

        r = requests.get(url=url, headers=headers)
        r.encoding = 'utf-8'
        content = r.text
        return content
    except:
        s = sys.exc_info()
        print("Error '%s' happened on line %d" % (s[1], s[2].tb_lineno))
        return " ERROR "

# 解析内容
def praseContent(content):
    soup = BeautifulSoup(content,'html.parser')
    chapter = soup.find(name='div',class_="bookname").h1.text
    content = soup.find(name='div',id="content").text
    save(chapter, content)
    next1 = soup.find(name='div',class_="bottem1").find_all('a')[2].get('href')
    # 如果存在下一个章节的链接,则将链接加入队列
    if next1 != '/0_638/':
        q.put(base_url+next1)
    print(next1)
# 保存数据到txt
def save(chapter, content):
    filename = "修罗武神.txt"
    f =open(filename, "a+",encoding='utf-8')
    f.write("".join(chapter)+'\n')
    f.write("".join(content.split())+'\n') 
    f.close

# 主程序
def main():
    start_time = time.time()
    q.put(first_url)
    # 如果队列为空,则继续
    while not q.empty():
        content = get_content(q.get())
        praseContent(content)
    end_time = time.time()
    project_time = end_time - start_time
    print('程序用时', project_time)

# 接口地址
base_url = 'https://www.xbiquge6.com'
first_url = 'https://www.xbiquge6.com/0_638/1124120.html'
if __name__ == '__main__':
    main()

结果蛮成功的吧,就是过程比较慢,程序用时1个半小时。。23333继续学习,有改进方案的欢迎提出来,一起交流。
QQ:1156381157

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python3 爬虫 requests

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python3 爬虫 requests

刚学Python爬虫不久,迫不及待的找了一个网站练手,新笔趣阁:一个小说网站。安装Python以及必要的模块(requests,bs4),不了解requests和bs4的同学可以去官网看个大概之后再回来看教程刚开始写爬虫的小白都有一个疑问,
2023-01-31

python3爬虫-通过requests

import requestsfrom fake_useragent import UserAgentfrom lxml import etreefrom urllib.parse import urljoinimport pymysqli
2023-01-31

Requests爬虫

之前写过一个urllib的爬虫方法,这个库是python内建的,从那篇文章也可以看到,使用起来很繁琐。现在更流行的一个爬虫库就是requests,他是基于urllib3封装的,也就是将之前比较繁琐的步骤封装到一块,更适合人来使用。  该库中
2023-01-30

Python3爬虫利器:requests怎么安装

这篇文章主要介绍了Python3爬虫利器:requests怎么安装,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python可以做什么Python是一种编程语言,内置了许多有
2023-06-14

【Python3爬虫】拉勾网爬虫

一、思路分析:在之前写拉勾网的爬虫的时候,总是得到下面这个结果(真是头疼),当你看到下面这个结果的时候,也就意味着被反爬了,因为一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正
2023-01-31

python: 爬虫利器requests

requests并不是系统自带的模块,他是第三方库,需要安装才能使用闲话少说,来,让我们上代码:简单的看一下效果:import requestsrequests = requests.session()headers = { 'Use
2023-01-31

Python3网络爬虫实战-17、爬虫基

爬虫,即网络爬虫,我们可以把互联网就比作一张大网,而爬虫便是在网上爬行的蜘蛛,我们可以把网的节点比做一个个网页,爬虫爬到这就相当于访问了该页面获取了其信息,节点间的连线可以比做网页与网页之间的链接关系,这样蜘蛛通过一个节点后可以顺着节点连线
2023-01-31

Python3网络爬虫实战-15、爬虫基

在写爬虫之前,还是需要了解一些爬虫的基础知识,如 HTTP 原理、网页的基础知识、爬虫的基本原理、Cookies 基本原理等。那么本章内容就对一些在做爬虫之前所需要的基础知识做一些简单的总结。在本节我们会详细了解 HTTP 的基本原理,了解
2023-01-31

Python3网络爬虫(十一):爬虫黑科

原文链接: Jack-Cui,http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text31 前言近期,有些朋友问我一些关于如何应对
2023-01-31

Python爬虫之Requests库的基

1 import requests 2 response = requests.get('http://www.baidu.com/') 3 print(type(response)) 4 print(response.status_
2023-01-30

requests-html爬虫利器介绍

爬虫用的最多的包无非就是requests, urllib,然后再利用pyquery或者bs4,xpath再去整理提取需要的目标数据。在requests-html里面只需要一步就可以完成而且可以直接进行js渲染.requests的作者Kenn
2023-01-30

Python3网络爬虫实战-10、爬虫框

我们直接用 Requests、Selenium 等库写爬虫,如果爬取量不是太大,速度要求不高,是完全可以满足需求的。但是写多了会发现其内部许多代码和组件是可以复用的,如果我们把这些组件抽离出来,将各个功能模块化,就慢慢会形成一个框架雏形,久
2023-01-31

Python3网络爬虫实战-11、爬虫框

ScrapySplash 是一个 Scrapy 中支持 JavaScript 渲染的工具,本节来介绍一下它的安装方式。ScrapySplash 的安装分为两部分,一个是是 Splash 服务的安装,安装方式是通过 Docker,安装之后会启
2023-01-31

Python3 爬虫 scrapy框架

上次用requests写的爬虫速度很感人,今天打算用scrapy框架来实现,看看速度如何。第一步,安装scrapy,执行一下命令pip install Scrapy第二步,创建项目,执行一下命令scrapy startproject nov
2023-01-31

python3爬虫-通过selenium

from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.webdriver.commo
2023-01-31

python3爬虫之开篇

写在前面的话:  折腾爬虫也有一段时间了,从一开始的懵懵懂懂,到现在的有一定基础,对于这一路的跌跌撞撞,个人觉得应该留下一些文字性的东西,毕竟好记性不如烂笔头,而且毕竟这是吃饭的家伙,必须用心对待才可以,从今天起,我将会把关于爬虫的东西进行
2023-01-30

python爬虫中requests库怎么用

小编给大家分享一下python爬虫中requests库怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python爬虫—requests库的用法request
2023-06-25

【Python3爬虫】常见反爬虫措施及解

这一篇博客,是关于反反爬虫的,我会分享一些我遇到的反爬虫的措施,并且会分享我自己的解决办法。如果能对你有什么帮助的话,麻烦点一下推荐啦。 UserAgent中文名为用户代理,它使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器
2023-01-30

Python爬虫Requests库如何使用

本篇内容主要讲解“Python爬虫Requests库如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬虫Requests库如何使用”吧!1、安装 requests 库因为学习过
2023-07-06

python3爬虫-知乎登陆

py文件:from fake_useragent import UserAgentimport requestsfrom http import cookiejarimport base64from PIL import Imageimpo
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录