Day5_python

定义

请求网站并提取数据的“自动化”程序

数据的获取方式

爬虫分类

1、通用网络爬虫:百度、谷歌
2、聚焦爬虫
3、增量爬虫
4、深层爬虫

作用范围

1、可见即可爬
2、看不到的也可爬,但是一定要合法
3、君子协议:打开一个浏览器 再在后面输入 /robots.txt
在这里插入图片描述
‘/’ 表示所有,是所有都不能爬取
‘*’ 表示
在这里插入图片描述
User-agent: 表示允许所有搜索引擎蜘蛛百来爬行抓取,也可以把去掉,改为特定某一个或者某些搜索引擎蜘蛛来爬行抓取,如百度是Baiduspider,谷歌是Googlebot。

Robots协议

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

技术扫盲

1、客户端:上网的用户,例如:逛淘宝的我们
2、服务端:提供网站的商家,例如:阿里巴巴

逛网站的流程:
1、客户端 向 服务器 发送请求
2、服务器收到请求后,返回一个响应

其中: 客户端就是我们电脑上的浏览器软件,网址相当于目标服务器。服务器本质是别人的电脑的一个软件

3、请求:由客户端发送到服务器的一个信息,用于申请网页
4、响应:由服务器返回到客户端的一个信息,一般是网页,字符串,图片,音乐等内容


摘自:https://blog.csdn.net/qq_40949713/article/details/80512339#commentBox

乐趣:myqr 生成动态二维码

python是所有编程语言中模块最丰富的
生活中常见的二维码功能在使用python第三方库来生成十分容易

第一种

在这里插入图片描述
三个大矩形是定位图案,用于标记二维码的大小。这三个定位图案有白边,通过这三个矩形就可以标识一个二维码了。

安装导入QRCode

pip install qrcode  #方法多,体量小
import qrcode
 
qrcode.make("不睡觉干嘛呢").get_image().show()   #设置URL必须添加http://

第二种

在这里插入图片描述

安装导入myqr库:

pip install myqr  #操作简单,功能强大

QRCode 多种自定义方法

import qrcode
 
text = input("输入文字或URL:")
img =qrcode.make(text)
img.save()                            #保存图片至本地目录,可以设定路径
img.show()    

实现代码
另外需要注意,你的动图需要跟你现在操作的py是在同一个文件夹

from MyQR import myqr
#扫描后的网址
url='https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1587142315905&di=6b42d8639d4fcb3f757db047bc845a38&imgtype=0&src=http%3A%2F%2Fpic1.win4000.com%2Fpic%2F3%2F2e%2Fea73d22e36.jpg'
#动态/静态的图片
pic='lelephoto.jpg'
#生成后的图片名字 (好像不能为jpg,因为我之前报错了)
pict='lelecode.png'

myqr.run(
    words=url,  #跳转的链接

    version=5,  #容错率
    level='M',  #控制纠错水平
    picture=pic,  #动图
    colorized=True,  #黑白(False)还是彩色(True)
    contrast=1.0,  #对比度
    brightness=1.0,  #亮度
    save_name=pict   #生成图片名字

    )

第三种

python myqr 模块 制作 静态 动态 二维码

官方文档

 
Positional parameter
 
   words: str
 
Optional parameters
 
   version: int, from 1 to 40
 
   level: str, just one of ('L','M','Q','H')
   picutre: str, a filename of a image
   colorized: bool
   constrast: float
   brightness: float
   默认输出文件名是“ qrcode.png ",而默认存储位置是当前目录
   save_name: str, the output filename like 'example.png'
   save_dir: str, the output directory

作业编码题

请编写一个爬虫程序,爬取100张狗狗图片(网站不限,注意分页操作)

import requests,re

flag=True
pn=0
n=0
while(flag):
    url=f'https://image.baidu.com/search/acjson?tn=resultjson_com&\
    ipn=rj&ct=201326592&is=&fp=result&queryWord=%E7%8B%97&cl=2&lm=-1&\
    ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=&hd=&latest=&copyright=&word=%E7%8B%97&\
    s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&\
    force=&pn={pn}&rn=30&gsm=1e&1587142840602=' #{} f 
    pn+=30

    headers={
        'Referer':'https://image.baidu.com/'
    }
    try:
        #向目标网页发送请求
        response=requests.get(url=url,headers=headers)
        #print(response.text)
        #获取网页的文本形式
        data=response.text
        #用正则表达式,筛选出所有的图片链接
        image_urls=re.findall('thumbURL":"(https://.*?.jpg)',data)  #规则 数据 取几个加几个点,用*是贪婪模式,?表示尽量少取,废话不要
        #遍历图片的路径
        #for i in image_urls:
        #    print(i)

        #再次发送请求,获取图片
        for url in image_urls:  #url:某一个图片的地址
            n+=1
            response_image=requests.get(url=url,headers=headers)
            #使用二进制形式保存图片
            with open('image/%s.jpg'%n,'wb') as f:  #%s是占位,由后面数的决定 起名字  写进来 二进制 (必须)
                #将二进制文件存入本地  #获取图片的二进制文件
                f.write(response_image.content)
            if(n==100):
                flag=False
                break
        print('执行完毕,图片已经存储')
    except:
        print('全部执行完毕,已完成爬虫程序')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DDouble-

你的鼓励是我最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值