python3.7实战代码_Python3爬虫实战:实战源码+博客讲解

news/2024/7/3 23:04:37

Python Spider

贵有恒,何必三更起五更睡;最无益,只怕一日暴十寒。

Python3爬虫实战:实战源码+博客讲解

学习交流群【328127489】

声明

代码、教程仅限于学习交流,请勿用于任何商业用途!

文章首发声明

文章在自己的个人网站首发,其他平台文章均属转发,如想获得最新更新进展,欢迎关注我的个人网站:http://cuijiahua.com/

目录

爬虫小工具

downloader.py:文件下载小助手

一个可以用于下载图片、视频、文件的小工具,有下载进度显示功能。稍加修改即可添加到自己的爬虫中。

动态示意图:

爬虫实战

biqukan.py:《笔趣看》盗版小说网站,爬取小说工具

第三方依赖库安装: pip3 install beautifulsoup4

使用方法: python biqukan.py

baiduwenku.py: 百度文库word文章爬取

代码不完善,没有进行打包,不具通用性,纯属娱乐。

carton: 使用Scrapy爬取《火影忍者》漫画

代码可以爬取整个《火影忍者》漫画所有章节的内容,保存到本地。更改地址,可以爬取其他漫画。保存地址可以在settings.py中修改。

financical.py: 财务报表下载小助手

爬取的数据存入数据库会吗?《跟股神巴菲特学习炒股之财务报表入库(MySQL)》也许能给你一些思路。

动态示意图:

one_hour_spider:一小时入门Python3网络爬虫。

原理说明:

本次实战内容有:

网络小说下载(静态网站)-biqukan

优美壁纸下载(动态网站)-unsplash

视频下载

douyin.py:抖音App视频下载

抖音App的视频下载,就是普通的App爬取。

原理说明:

douyin_pro:抖音App视频下载(升级版)

抖音App的视频下载,添加视频解析网站,支持无水印视频下载,使用第三方平台解析。

原理说明:

douyin:抖音App视频下载(升级版2)

抖音App的视频下载,添加视频解析网站,支持无水印视频下载,通过url解析,无需第三方平台。

原理说明:

动态示意图:

geetest.py:GEETEST验证码识别

原理说明:

12306.py:用Python抢火车票简单代码

可以自己慢慢丰富,蛮简单,有爬虫基础很好操作,没有原理说明。

baiwan:百万英雄辅助答题

效果图:

原理说明:

功能介绍:

服务器端,使用Python(baiwan.py)通过抓包获得的接口获取答题数据,解析之后通过百度知道搜索接口匹配答案,将最终匹配的结果写入文件(file.txt)。

手机抓包不会的朋友,可以看下我的早期手机APP抓包教程。

Node.js(app.js)每隔1s读取一次file.txt文件,并将读取结果通过socket.io推送给客户端(index.html)。

亲测答题延时在3s左右。

声明:没做过后端和前端,花了一天时间,现学现卖弄好的,javascript也是现看现用,百度的程序,调试调试而已。可能有很多用法比较low的地方,用法不对,请勿见怪,有大牛感兴趣,可以自行完善。

Netease:根据歌单下载网易云音乐

效果图:

原理说明:

暂无

功能介绍:

根据music_list.txt文件里的歌单的信息下载网易云音乐,将自己喜欢的音乐进行批量下载。

bilibili:B站视频和弹幕批量下载

原理说明:

暂无

使用说明: python bilibili.py -d 猫 -k 猫 -p 10

三个参数:

-d保存视频的文件夹名

-kB站搜索的关键字

-p下载搜索结果前多少页

jingdong:京东商品晒单图下载

效果图:

原理说明:

暂无

使用说明: python jd.py -k 芒果

三个参数:

-d保存图片的路径,默认为fd.py文件所在文件夹

-k搜索关键词

-n 下载商品的晒单图个数,即n个商店的晒单图

zhengfang_system_spider:对正方教务管理系统个人课表,个人学生成绩,绩点等简单爬取

效果图:

使用说明: cd zhengfang_system_spider

pip install -r requirements.txt

python spider.py

其它

欢迎 Pull requests,感谢贡献。

文件下载小助手

#-*- coding: UTF-8 -*-

import requests

from contextlib import closing

class ProgressBar(object):

def __init__(self, title, count=0.0, run_status=None, fin_status=None, total=100.0, unit='', sep='/', chunk_size=1.0):

super(ProgressBar, self).__init__()

self.info = "[%s] %s %.2f %s %s %.2f %s"

self.title = title

self.total = total

self.count = count

self.chunk_size = chunk_size

self.status = run_status or ""

self.fin_status = fin_status or " " * len(self.status)

self.unit = unit

self.seq = sep

def __get_info(self):

#[名称] 状态 进度 单位 分割线 总数 单位

_info = self.info % (self.title, self.status, self.count/self.chunk_size, self.unit, self.seq, self.total/self.chunk_size, self.unit)

return _info

def refresh(self, count = 1, status = None):

self.count += count

self.status = status or self.status

end_str = "\r"

if self.count >= self.total:

end_str = '\n'

self.status = status or self.fin_status

print(self.__get_info(), end=end_str, )

if __name__ == '__main__':

#url = 'http://www.demongan.com/source/game/二十四点.zip'

#filename = '二十四点.zip'

print('*' * 100)

print('\t\t\t\t欢迎使用文件下载小助手')

print('作者:Jack-Cui\n博客:http://blog.csdn.net/c406495762')

print('*' * 100)

url = input('请输入需要下载的文件链接:\n')

filename = url.split('/')[-1]

with closing(requests.get(url, stream=True)) as response:

chunk_size = 1024

content_size = int(response.headers['content-length'])

if response.status_code == 200:

print('文件大小:%0.2f KB' % (content_size / chunk_size))

progress = ProgressBar("%s下载进度" % filename

, total = content_size

, unit = "KB"

, chunk_size = chunk_size

, run_status = "正在下载"

, fin_status = "下载完成")

with open(filename, "wb") as file:

for data in response.iter_content(chunk_size=chunk_size):

file.write(data)

progress.refresh(count=len(data))

else:

print('链接异常')

磁力搜索网站2020/01/01更新


http://www.niftyadmin.cn/n/2308419.html

相关文章

symbian压缩和解压缩GZIP文件

开发伙伴平台: S60 3rd Edition, FP1 详细描述 下列代码片段演示了如何压缩和解压缩GZIP文件,这里使用了CEZFileToGZip类和CEZGZipToFi类。代码可以通过自签名执行。 MMP文件 需要下列链接库 Code:LIBRARY efsrv.libLIBRARY ezlib.lib 源文件 Code:#i…

symbian 使用RLibrary加载DLL

开发伙伴平台: S60 3rd Edition, MR 详细描述 下列代码片段演示了如何动态加载一个多态的DLL。对静态DLL来说,程序在启动时自动加载到RAM中。也可以在任何不需要的时候自动卸载。一个多态的 DLL可以通过调用RLibrary::Load()加载,以及通过…

ubuntu安装gnutls_在ubuntu中安装pyspider(注意事项)

最近生病,经历了半个月,总算是活过来了。既然没死,那学习就永无止境吧。今天讲讲在ubuntu中安装pyspider的注意事项吧。PySpider 是非常方便并且功能强大的爬虫框架,支持多线程爬取、JS动态解析,提供了可操作界面、出错…

合肥天鹅湖万达广场机器人_2021年元旦淮南万达广场非常热闹,商家打折促销,生意非常好...

今天是2021年的元旦,新年的第1天!全省万达广场非常多,淮南万达开业已经接近两年,也是全省万达广场之一。今天我到淮南万达广场逛一逛,看一看。来到淮南万达广场,商家正忙的不亦乐乎,非常热闹&am…

后氧传感器正常数据_最简单实用的传感器检测方法(氧传感器、凸轮轴位置传感器等)...

1. 凸轮轴位置传感器(安装在凸轮轴上的凸轮轴位置传感器)01接插件的检测检查凸轮轴位置传感器的插接件接触是否良好,检测传感器插接件三个端脚之间是否有短路或严重漏电现象存在。02供电检测检测凸轮轴位置传感器端脚A所对应的插头与搭铁之间的5V供电电压是否正常&a…

aⅴgo安装包下载_【Windows系统】基于vscode搭建go语言开发环境

点蓝色字关注“CurryCoder的程序人生”微信公众号:CurryCoder的程序人生 怕什么真理无穷,进一寸有一寸的欢喜1.golang安装包下载与安装关于vscode的下载,请参见历史文章Ubuntu16.04下搭建vscode的C开发环境,本文就不再赘述啦~下面…

symbian 进度条 processbar

进度条(Progressbar)控件用于显示某个持续时间比较长的操作进度,例如邮件接受进度和文件下载进度大牛股。本节的ProgressBar示例程序显示了一个简单的进度条,进度随着事件增长,ProgressBar示例程序的运行界面如下如所示…

amd为什么还用针脚_英特尔CPU早就取消针脚了,AMD为什么还不取消?

英特尔和AMD竞争了这么多年,AMD唯一改变最小的恐怕就是接口了,到现在仍然坚持使用“老旧”的针脚式接口,而英特尔早在十多年以前就早早抛弃了针脚,使用了LGA触点式接口,当时人们还觉得AMD处理器不久后也将跟随英特尔全…