Coder Social home page Coder Social logo

jack-cherish / python-spider Goto Github PK

View Code? Open in Web Editor NEW
17.6K 17.6K 5.9K 1.24 MB

:rainbow:Python3网络爬虫实战:淘宝、京东、网易云、B站、12306、抖音、笔趣阁、漫画小说下载、音乐电影下载等

Home Page: https://cuijiahua.com/blog/spider/

Python 94.68% JavaScript 3.23% HTML 2.09%
python python-spider python3 webspider

python-spider's Introduction

注:2020年最新连载教程请移步:Python Spider 2020

Python Spider

原创文章每周最少两篇,后续最新文章会在【公众号】首发,视频【B站】首发,大家可以加我【微信】交流群,技术交流或提意见都可以,欢迎Star

微信群 公众号 B站 知乎 CSDN 头条 掘金

声明

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

目录

爬虫小工具

  • downloader.py:文件下载小助手

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

    动态示意图:

    image

爬虫实战

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

    第三方依赖库安装:

     pip3 install beautifulsoup4
    

    使用方法:

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

    原理说明:http://blog.csdn.net/c406495762/article/details/72331737

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

  • shuaia.py: 爬取《帅啊》网,帅哥图片

    《帅啊》网URL:http://www.shuaia.net/index.html

    原理说明:http://blog.csdn.net/c406495762/article/details/72597755

    第三方依赖库安装:

     pip3 install requests beautifulsoup4
    
  • daili.py: 构建代理IP池

    原理说明:http://blog.csdn.net/c406495762/article/details/72793480

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

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

    动漫网站:http://comic.kukudm.com/

    原理说明:http://blog.csdn.net/c406495762/article/details/72858983

  • hero.py: 《王者荣耀》推荐出装查询小助手

    网页爬取已经会了,想过爬取手机APP里的内容吗?

    原理说明:http://blog.csdn.net/c406495762/article/details/76850843

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

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

    原理说明:http://blog.csdn.net/c406495762/article/details/77801899

    动态示意图:

    image

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

    原理说明:

    本次实战内容有:

    • 网络小说下载(静态网站)-biqukan
    • 优美壁纸下载(动态网站)-unsplash
    • 视频下载
  • douyin.py:抖音App视频下载

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

    原理说明:

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

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

    原理说明:

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

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

    原理说明:

    动态示意图:

    image

  • geetest.py:GEETEST验证码识别

    原理说明:

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

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

  • baiwan:百万英雄辅助答题

    效果图:

    image

    原理说明:

    功能介绍:

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

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

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

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

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

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

    效果图:

    image

    原理说明:

    暂无

    功能介绍:

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

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

    原理说明:

    暂无

    使用说明:

     python bilibili.py -d 猫 -k 猫 -p 10
    
     三个参数:
     -d	保存视频的文件夹名
     -k	B站搜索的关键字
     -p	下载搜索结果前多少页
    
  • jingdong:京东商品晒单图下载

    效果图:

    image

    原理说明:

    暂无

    使用说明:

     python jd.py -k 芒果
    
      三个参数:
     -d	保存图片的路径,默认为fd.py文件所在文件夹
     -k	搜索关键词
     -n  	下载商品的晒单图个数,即n个商店的晒单图
    
  • zhengfang_system_spider:对正方教务管理系统个人课表,个人学生成绩,绩点等简单爬取

    效果图:

    image

    原理说明:

    暂无

    使用说明:

     cd zhengfang_system_spider
     pip install -r requirements.txt
     python spider.py
    

其它

  • 欢迎 Pull requests,感谢贡献。

更多精彩,敬请期待!

wechat

python-spider's People

Contributors

chess99 avatar crazybunqnq avatar dependabot[bot] avatar hjlarry avatar jack-cherish avatar steven7851 avatar sys0613 avatar zyszys avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

python-spider's Issues

出错了呀KeyError: 'aweme_list'`

解析视频链接中 Traceback (most recent call last): File "douyin_appsign.py", line 325, in <module> douyin.run() File "douyin_appsign.py", line 283, in run video_names, video_urls, share_urls, nickname = self.get_video_urls(user_id, type_flag) File "douyin_appsign.py", line 194, in get_video_urls for each in html['aweme_list']: KeyError: 'aweme_list'

出错了。。。。

我是为了福利

我想爬取ttp://www.biqukan.com 这个网站所有小说,然后自己写个小说app,能给我点意见吗

运行报错

Traceback (most recent call last):
File "D:/Files/Python Practice/test/test.py", line 160, in
douyin.run()
File "D:/Files/Python Practice/test/test.py", line 125, in run
video_names, video_urls, share_urls, nickname = self.get_video_urls(user_id)
File "D:/Files/Python Practice/test/test.py", line 46, in get_video_urls
uid = html['user_list'][0]['user_info']['uid']
KeyError: 'user_list'

新的搜索api

要修改的地方

serarch_url = https://api.bilibili.com/x/web-interface/search/type?jsonp=jsonp&search_type=video&keyword={}&page={}

返回的json数据

videos = html["data"]['result']
多谢大神分享,学习了很多!

网易云音乐下载失败

post_request函数一直返回post_request error,分析了一下是在执行get_song_url函数的时候产生的,不知道是什么原因?
image

B站视频下载不全

python bilibili.py -d lex -k lexburner2009年的零 -p 1
我这么下载一个10分钟的视频,只能下载前6分钟

抖音搜索接口变更

刚用了下抖音的爬虫,发现抖音搜索接口已变更 会为每个关键字生成两个token参数。不知如何破解,请大神帮忙看看有没有啥好方法。
抓包发现最新接口为http://aweme.snssdk.com/aweme/v1/general/search
会用到cookie判断是否登录
还有搜索关键字参数变化mas和as 参数都会变化
keyword=***&offset=0&mas=010abf2fd5bc52c15a2cccb755d17528ee1d793a0e0b26f18808de&as=a135dc16bc6edbd9022563

some problems trouble me

Hello, master Cui.
有一个问题想请教一下,我的代码(功能是一个电商平台自动下单)在windows 平台上跑没问题。但是在Linux 系统上面跑,只能得到get请求,post请求就没有得到响应,似乎是禁止了平台操作。还望大佬支招。

致作者

能不能增加批量下载 喜玛拉雅 音频的爬虫?

滑动验证码,我参照你的做了一个,遇到一些问题,有时间时候能否帮忙看看,谢谢

https://github.com/sys0613/python-spider/tree/master/geetest我暂时传到我的库了,等弄好了,再往你的库push,目前工商网站滑块不能测试,我就采用geetest官网的测试页面进行测试,点击登录,获取滑块图片时,我从fiddler抓包效果和说明我都写出来了。
我不太懂js和css,我想让你简单帮我说下流程。我现在不知道怎么往下走,获取到完整验证码图片,和有缺口的验证码图片了。
我现在有两个问题,想让你帮帮忙,谢谢。具体内容我都写到我github网址文件夹了。
问题1,我第一个请求访问的网址是不是根据登录页面中的js函数计算出来的?(我目前看不懂js)
问题2,我请求5和请求7中的乱序图片是要根据请求3中的js进行重新组合,还是根据请求4中的css进行组合,才能得到一个完整的图片,和一个有缺口的图片?
谢谢了,我目前的弱项是js和css。我看你的工商网址验证码改了,就想试好geetest官网的,push上来,让大家能用。目前卡在这里了。

代码报错

File "1.py", line 126, in run
video_names, video_urls, nickname = self.get_video_urls(user_id)
File "1.py", line 35, in get_video_urls
aweme_count = html['user_list'][0]['user_info']['aweme_count']
KeyError: 'user_list'

12306抢票报错

Message: unknown error: Element ... is not clickable at point (1112, 99). Other element would receive the click:


(Session info: chrome=63.0.3239.132)
(Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 10.0.10586 x86_64)

VIP视频

大神video_downloader目录下没有requirements.txt文件,python安装不了。
爱奇艺vip用软件出来的只有免费的6分钟吗?

12306 抢票error

如下

等待验证码,自行输入...
购票页面开始...
循环点击查询... 第 1 次
[2832:8432:0114/111719.531:ERROR:service_manager.cc(157)] Connection InterfaceProviderSpec prevented service: content_renderer from binding interface: blink::mojom::ReportingServiceProxy exposed by: content_browser
Message: stale element reference: element is not attached to the page document
(Session info: chrome=63.0.3239.132)
(Driver info: chromedriver=2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87af1),platform=Windows NT 10.0.16299 x86_64)

还没开始预订 1
开始预订...
开始选择用户...
提交订单...
'ElementList' object has no attribute 'click'

F:\trainticket_booker-master>[5620:16128:0114/111729.132:ERROR:process_metrics.cc(105)] NOT IMPLEMENTED
[5620:16128:0114/111729.132:ERROR:process_metrics.cc(105)] NOT IMPLEMENTED
[5620:16128:0114/111729.133:ERROR:process_metrics.cc(105)] NOT IMPLEMENTED
[5620:16128:0114/111729.135:ERROR:process_metrics.cc(105)] NOT IMPLEMENTED

浏览器先显示了登陆界面,登录后跳转到订票页面,还没有来得及看清楚就又返回登陆页面了,以上是命令行显示的错误

12306抢票 error

等待验证码,自行输入...
购票页面开始...
循环点击查询... 第 1 次
no elements could be found with text "预订"
还没开始预订
循环点击查询... 第 2 次
Message: unknown error: Element ... is not clickable at point (1102, 15). O
ther element would receive the click: .
..
(Session info: chrome=63.0.3213.3)
(Driver info: chromedriver=2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87a
f1),platform=Windows NT 6.1.7601 SP1 x86_64)

爬虫pycharm报错

你好,从CSDN上看到你的爬虫教程觉得很有趣点了个赞就跟着照做,但出现了点问题望能回复
问题很简单,在pharm中
import requests

if name == 'main':
target = 'http://gitbook.cn/'
req = requests.get(url=target)
print(req.text)

会报错
D:\Python\Python36\python.exe "C:/Users/zxy/PycharmProjects/Python Excerise/WebSpider/random.py"
Traceback (most recent call last):
File "C:/Users/zxy/PycharmProjects/Python Excerise/WebSpider/random.py", line 1, in
import requests
File "D:\Python\Python36\lib\site-packages\requests_init_.py", line 97, in
from . import utils
File "D:\Python\Python36\lib\site-packages\requests\utils.py", line 11, in
import cgi
File "D:\Python\Python36\lib\cgi.py", line 44, in
import tempfile
File "D:\Python\Python36\lib\tempfile.py", line 45, in
from random import Random as _Random
ImportError: cannot import name 'Random'

但是copy到cmd的python中运行没出现问题

"请先登录,再继续搜索吧"

After modifying douyin_pro_2.py:

			req = requests.get(search_url, headers=self.headers)
			html = json.loads(req.text)
			print(html) ###!!!!
			aweme_count = 32767 # html['user_list'][0]['user_info']['aweme_count']
			uid = html['user_list'][0]['user_info']['uid']
$ python douyin_pro_2.py
[...]
{'status_code': 2483, 'rid': '20180713080926010011047200583C2E', 'log_pb': {'impr_id': '20180713080926010011047200583C2E'}, 'status_msg': '请先登录,再继续搜索吧', 'extra': {'logid': '20180713080926010011047200583C2E', 'now': 1531440566657, 'fatal_item_ids': []}}
Traceback (most recent call last):                                                                                                                                                                                                            
  File "douyin_pro_2.py", line 153, in <module>
    douyin.run()
  File "douyin_pro_2.py", line 118, in run
    video_names, video_urls, share_urls, nickname = self.get_video_urls(user_id)
  File "douyin_pro_2.py", line 39, in get_video_urls
    uid = html['user_list'][0]['user_info']['uid']
KeyError: 'user_list'

How do I login?

感觉都可以那这个去创个小业了

小说的那个脚本貌似章节比较长的小说会报错,不显示下载进度

#我用的这个目录 网址 报错 一千多章的小说 http://www.biqukan.com/1_1094/
Traceback (most recent call last):
File "D:/py17/爬虫/小说.py", line 137, in
name,numbers,url_dict = d.get_download_url()
File "D:/py17/爬虫/小说.py", line 73, in get_download_url
download_dict['第' + str(numbers) + '章 ' + names[1]] = download_url
IndexError: list index out of range

#这个列表貌似没把整个目录全部取下来 ,只取到1259章,实际到1260章
1277 1278 ['第1256', ' 帝戟']
1278 1279 ['第1257', ' 你敢骂我?']
1279 1280 ['第1258', ' 陨落']
1280 1281 ['第1259张 风波再起!']

Process finished with exit code 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.