首页 » Web前端 » php破解图片盗链技巧_Python爬虫真的简单吗0根本入门项目之抓取MM照片。。

php破解图片盗链技巧_Python爬虫真的简单吗0根本入门项目之抓取MM照片。。

访客 2024-12-13 0

扫一扫用手机浏览

文章目录 [+]

很多人说 Python 大略指的是“语法”层面的大略。
的确如此,Python 和其他编程措辞如 C++、Java、PHP、Go 比较,语法要大略很多。

如何入门Python

首先!
你要对爬虫有个明确的认识,节制Python根本后再向上进阶。

php破解图片盗链技巧_Python爬虫真的简单吗0根本入门项目之抓取MM照片。。

爬虫基本观点

爬虫也称网页蜘蛛,紧张用于抓取网页上的特定信息,比如我们可以批量下载图片,批量下载段子,省去手工操作的大量韶光。

php破解图片盗链技巧_Python爬虫真的简单吗0根本入门项目之抓取MM照片。。
(图片来自网络侵删)

爬虫程序一样平常是通过仿照浏览器对相应URL发出要求,获取数据,并通过正则等手段匹配出页面中我们所需的数据。

什么是Requests库

Requests库是学习爬虫的一大利器,用Python编写,基于urllib,采取Apache2 Licensed开源协议的HTTP库,利用起来非常大略明了。

将图片抓取下来

import requestsresponse2 = requesgets.t('https://github.com/favicon.ico')#在文件保存目录或是Python安装目录下可以找到下载文件with open('favicon.ico','wb')as f:f.write(response.content)f.close添加headers

mport requestsresponse2 = requesgets.t('https://github.com/favicon.ico')#在文件保存目录或是Python安装目录下可以找到下载文件with open('favicon.ico','wb')as f:f.write(response.content)f.close添加headers

设置代理

import requestsproxies = {'http':'http://127.0.0.1:1080/pac?auth=HgT2fpms98njlh9QGpsP&t=201803030916114202','https':'https://127.0.0.1:1080/pac?auth=HgT2fpms98njlh9QGpsP&t=201803030916114202',}response = requests.get('http://h.jiguangdaili.com',proxies = proxies)print(response.status_code)高效的爬虫工具

NO.1 F12 开拓者工具

看源代码:快速定位元素剖析xpath:1、此处建议谷歌系浏览器,可以在源码界面直接右键看

NO.2 抓包工具:

推举httpfox,火狐浏览器下的插件,比谷歌火狐系自带的F12工具都要好,可以方便查看网站收包发包的信息

更多Python入门根本资料,@ 私聊

爬虫抓取MM照片网页剖析

剖析目标网站的相册网页地址

随便打开几个相册,可以看到都是这样的规则:

"https://www..com/g//"

以是我们就可以确定要爬取的基本url:

const base_url = 'https://www..com/g/';//爬取相册网页的基本网址

代码实现

const nvshens = require('./co');const base_url = 'https://www.taobao.com/g/';//爬取相册网页的基本网址let index = 1;let start = 25380;const end = 30000;const main = async (URL) => {//1.要求网址const data = await nvshens.getPage(URL);//2.判断是否存在相册if (nvshens.getTitle((data.res))) {//3.下载照片await nvshens.download(data.res);//4.要求分页index++;const new_url = `${base_url}${start}/${index}.html`;main(new_url);} else {index = 1;console.log(`${base_url}${start}页面已完成`)start++;if (start < end) {//5.要求下一个网址main(base_url + start);} else {console.log(`${base_url}${end}所有页面已完成`)}}};main(base_url + start);var request = require('request-promise'); //网络要求const cheerio = require("cheerio");//操作domconst fs = require("fs");//读写文件const headers = {"Referer": "https://www.nvshens.com/g/24656/"}//由于一些网站在办理盗链问题时是根据Referer的值来判断的,以是在要求头上添加Referer属性就好(可以填爬取网站的地址)。
//其余Referer携带的数据 是用来见告做事器当前要求是从哪个页面要求过来的。
const basePath = "/Users/用户名/Desktop/mm/";//自定义mac本地下载目录,需预先创建,windows路径可参考"D:/Users/mm/"let downloadPath;let pageIndex = 1;module.exports = {//要求页面async getPage(url) {const data = {url,res: await request({url: url})}return data;},//判断页面是否存在相册getTitle(data) {const $ = cheerio.load(data);if ($("#htilte").text()) {downloadPath = basePath + $("#htilte").text();//创建相册if (!fs.existsSync(downloadPath)) {fs.mkdirSync(downloadPath);console.log(`${downloadPath}文件夹创建成功`)}return true;} else {return false;}},//下载相册照片async download(data) {if (data) {var $ = cheerio.load(data);$("#hgallery").children().each(async (i, elem) => {const imgSrc = $(elem).attr('src');const imgPath = "/" + imgSrc.split("/").pop().split(".")[0] + "." + imgSrc.split(".").pop();console.log(`${downloadPath + imgPath}下载中`)const imgData = await request({uri: imgSrc,resolveWithFullResponse: true,headers,}).pipe(fs.createWriteStream(downloadPath + imgPath));})console.log("page done")}},}几个函数就可以实现照片抓取,是不是很大略呢?
为了帮助大家更轻松的学好Python,我给大家分享一套Python学习资料,@ 私信小编领取PS:如果以为本篇文章对您有所帮助,欢迎关注、收藏、转发( ´・ω・)ノ(._.`)

标签:

相关文章

php防止捏造来路技巧_实例讲解防盗链技能

盗链的定义此内容不在自己做事器上,而通过技能手段,绕过别人放广告有利益的终极页,直接在自己的有广告有利益的页面上向终极用户供应此内...

Web前端 2024-12-15 阅读0 评论0