我发现最近很多同学都喜欢去研究python爬虫怎么写,但很多人其实都是临时有任务需要使用到爬虫,而网上的教程学起来太漫长,因为我也是0基础学会的了,我觉得我来写的话可能大家更容易上手,所以我决定写几个案例来教大家怎么快速的爬取网页中的文件或者是数据。

由简单到困难我分别会用 pdf文件下载,airbnb数据爬取,某电商产品分类销量价格爬取这3个案例来介绍

第一个案例是爬取去网页中的pdf文件

首先介绍一下爬虫的原理

我们随便打开一个网页,看到图片后,右键图片,点击检查,就会定位到右图我画了红框的位置,仔细看图片可以发现,红框的内容就是*****.jpg,而这便是这张图片的地址。我们在写爬虫的时候,就是请求这个地址然后将文件保存下来。

而爬虫主要目的是为了节省人力,我们每次不是只下载这一个图片,我们是需要下载很多图。

接下来正式进入第一个案例 批量下载某网页中的pdf文件。

首先用易懂的方式介绍我们需要用到的库(库就是别人已经写好的程序,你只需要按照别人的要求来使用)

requests(这是用来请求网页的数据,比如上图中的网址,我用requests来请求,就会得到上图中右边那一大段的代码)

BeautifulSoup(当我们用requests请求到上图中那一大串代码的时候,我们就需要用BeautifulSoup这个库来找出我们需要的那段*****.jpg的网址)

requests(接下来我们再用一次requests来请求*****.jpg 就可以保存到我们的电脑里了)

random (这是用来得出一个随机数的)

time(这个是用来让每次运行的时间间隔不那么快,不然容易被封IP)

正式进入我们要爬取文件的网站

比如我要爬取这个网站中的所有文件

一直找到下载的最后一步,(最后一步指的是我再点击一下,他就真的开始下载了)这个网站的最后一步是这样的

../doaction.php?enews=DownSoft&classid=3&id=38554&pathid=0&pass=2c677cca1cdf406d3add48fd25695252&p=:::

仔细比对多个下载链接后,会发现上面一串字母数字中,只有id=后面的38554是不同的,其它的内容都是一样。所以,我们要下载所有的文件,就只需要找出网页中所有的数值,然后替代进去。

接下来我们来看目录页

我们发现目录中每一个链接我们用邮件审查后,位数也会有相同的数字。也就是说,我们这个网站总共有15522条目录,我们只需要找出这15522条目录对应的数值,再替换到我们第一步中找到的下载链接就可以全部下载完成了。

接下来开始实际操作

from bs4 import BeautifulSoup

import requests

import re

import random

import time

headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}

URL="我们需要的网址"

link1="http://我们需要的网址/e/downsys/doaction.php?enews=DownSoft&classid=3&id="

link2="&pathid=0&pass=2c677cca1cdf406d3add48fd25695252&p=:::"

data=requests.get(URL).text

soup=BeautifulSoup(data,"lxml")

#print(soup.prettify())

all_id=[]

for t in soup.find_all('a'):

ID=re.findall('\d+',t.get("href"))

#print(ID)

for id in ID:

if int(id) >2020:

all_id.append(id)

for link_id in all_id:

rlink=link1+link_id+link2

r = requests.get(rlink)

with open(link_id+'.rar', 'wb') as f:

f.write(r.content)

print('download'+link_id+'完成')

time.sleep(random.randint(0,3))这就是下载的文件

我对不起大家,我实在不知道怎么形容通俗易懂了,等等,我过两天再来梳理一下语言其实就上面简单的几行代码就可以把整个网站1w多个文件下载下来了,但是我感觉我词穷了。

编写python爬虫基础_0基础如何快速写python爬虫相关推荐

  1. 学python b站_0基础自学python,有没有推荐的b站课程?

    背景: 毕业近5年,至今仍无任何表面成绩,一开始做期货投机,后经营个体店(失败),综合能力尚可,世俗眼光压力.同类对比压力.年龄压力,久了不好受.不甘于把时间浪费在"随便的工作", ...

  2. python矩阵运算法则_0基础4天掌握Python数据挖掘2-12-矩阵运算

    0基础4天掌握Python数据挖掘2-12-矩阵运算 传智播客博学谷 2020/12/10 10:21 介绍: 课程简介 该阶段主要是介绍一些数据科学领域用Python语言实现的基础库,如简洁.轻便的 ...

  3. python需要什么英语基础_0基础学python有多难

    国考行测多少道题 国家公务员考试分为副省级和市地级两套试卷,副省级行测一共135道题,市地级行测是130道题.作答时间均是120分钟.<行政职业能力测验>考查范围包括:常识.言语理解与表达 ...

  4. python web 框架例子_最快的 Python Web 框架入门

    原标题:最快的 Python Web 框架入门 来源:Python开发 ID:PythonPush 速度比较 框架 实现基础 每秒请求数 平均时间 Sanic Python 3.5 + uvloop ...

  5. python headers 随机_0基础学Python之反爬虫利器,搭建HTTP代理~~

    大数据时代,随着互联网的普及与高速发展,人们对于网络的依赖也愈加强.大部分人依靠互联网工作和生活,掌握庞大的数据信息显得尤为重要. 而网络爬虫的作用就取决于采集分析这些大数据信息,各领域具有更强的发展 ...

  6. b站python哪家好_0基础自学python,有没有推荐的b站课程?

    B 站也就是哔哩哔哩,是国内最大的二次元视频网站之一,喜欢看动漫的人估计没几个不知道的.我虽然看视频不多,但现在基本想看视频就直接去 B 站了. 刚开始知识看看动漫,或者电影解读之类的,后来无意中发现 ...

  7. 统计信号处理基础_0基础学Python,就业中你需要建立360度无死角技能树

    1956年,人工智能的概念就已经提出,但在以前,人工智能大多只是存在于书本和荧幕中,到了今天,生活中充斥着人工智能的影子,智能语音助手.翻译器.指纹识别.人脸识别.无人驾驶...... 自阿尔法围棋出 ...

  8. 怎么快速写python自动化脚本_自动化脚本如何编写?

    首先,我们看一个视频 ,通过视频,了解下什么是自动化脚本 . 这个是我用auto.js写的一个 抖音自动养号脚本 .大体功能就是自动私信,评论,关注 , 有兴趣可以先去一下链接了解 . 目前编写自动化 ...

  9. python异步网络通信框架_超级快的 Python 异步网络框架

    简短介绍 asyncio是遵循Python标准库的一个异步 I/O框架.在这篇文章里,我将介绍 uvloop: 可以完整替代asyncio事件循环.uvloop是用Cython写的,基于 libuv. ...

  10. python爬虫步骤-黑客基础 编写Python爬虫入门步骤

    原标题:黑客基础 编写Python爬虫入门步骤 信息时代,数据就是宝藏.数据的背后隐含着无穷的宝藏,这些宝藏也许就是信息量所带来的商业价值,而大数据本身也将成为桌面上的筹码. 黑客花无涯 带你走进黑客 ...

最新文章

  1. 快速多尺度人脸检测--Multi-Scale Fully Convolutional Network for Fast Face Detection
  2. 操作系统ppt_Python处理PPT文件的实用姿势
  3. leetcode算法题--复制带随机指针的链表★
  4. springboot使用TemplateEngine修改邮箱后发送验证码示例
  5. 打包python程序发布_Python代码的打包与发布详解
  6. 浏览器中的机器学习:使用预训练模型
  7. mysql数据横表变成竖表_MySQL中横表和竖表相互转换
  8. java 拷贝替换文件夹_比较两个不同文件夹中的两个文件,并将其替换为较新的文件夹...
  9. java版我的世界光追,老瓶装新酒 光追版《我的世界》将至你心动了吗
  10. python scipy.stats 正态分布_Python Scipy stats.normaltest()用法及代码示例
  11. 上海市计算机二级vb试题及答案,上海计算机二级VB试题
  12. am335x LCD调节背光
  13. 搜狗拼音输入法2015 v7.5 官方版​
  14. idea local history说明
  15. 【AAD Connect】01:AAD Connect把本地AD账户同步到Office365(AD域账户迁移)
  16. 根据经纬度计算距离(百度地图)
  17. frameset和frame的使用方法
  18. orc识别较慢_提高OCR识别效率的诀窍
  19. 6-4布线问题(分支限界)
  20. 隐藏受保护的系统文件的注册表键值

热门文章

  1. IOS 开发技能图谱——ios 开发工程师必知必会要点
  2. Auto.jsMIUI小米手机锁屏界面无法上滑输入密码解锁的问题 以及如何输入密码进行解锁
  3. 计算机机房主机有哪些功能,机房动环监控主机作用
  4. fatal: unable to access ...: LibreSSL SSL_connnect: Connection reset by peer in connect to... :443
  5. mysql workbench pk_MySQL Workbench筑表时PK, NN, UQ, BIN, UN, ZF, AL的意思
  6. springboot+农机装备生产车间物料配送车辆调度管理系统 毕业设计-附源码181710
  7. 宁芝普拉姆键盘说明书以及键盘校验软件
  8. 在Linux中,如何找回root密码(So easy!!)
  9. Electron--桌面应用开发(基本应用,快速入门)
  10. 2022广东最新初级消防员模拟考试试题及答案