爬虫基础学习记录

news/2024/9/22 23:37:28/

爬虫介绍

互联网爬虫

如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据

  • 解释1:通过一个程序,根据Url(http://www.taobao.com)进行爬取网页,获取有用信息
  • 解释2:使用程序模拟浏览器,去向服务器发送请求,获取响应信息

爬虫核心

  1. 爬取网页:爬取整个网页 包含了网页中所有得内容
  2. 解析数据:将网页中你得到的数据 进行解析
  3. 难点:爬虫和反爬虫之间的博弈

爬虫的用途

  • 数据分析/人工数据集
  • 社交软件冷启动
  • 舆情监控
  • 竞争对手监控

爬虫分类

通用爬虫:
实例

  • 百度、360、google、sougou等搜索引擎‐‐‐伯乐在线

功能

  • 访问网页‐>抓取数据‐>数据存储‐>数据处理‐>提供检索服务

robots协议

  • 一个约定俗成的协议,添加robots.txt文件,来说明本网站哪些内容不可以被抓取,起不到限制作用自己写的爬虫无需遵守

网站排名(SEO)

  1. 根据pagerank算法值进行排名(参考个网站流量、点击率等指标)
  2. 百度竞价排名

缺点

  1. 抓取的数据大多是无用的
  2. 不能根据用户的需求来精准获取数据

聚焦爬虫

功能

  • 根据需求,实现爬虫程序,抓取需要的数据

设计思路

  • 1.确定要爬取的url
    如何获取Url
  • 2.模拟浏览器通过http协议访问url,获取服务器返回的html代码
    如何访问
  • 3.解析html字符串(根据一定规则提取需要的数据)
    如何解析

反爬手段

1.User‐Agent:

  • User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU
    类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

2.代理IP

  • 西次代理

  • 快代理

  • 什么是高匿名、匿名和透明代理?它们有什么区别?

    • 1.使用透明代理,对方服务器可以知道你使用了代理,并且也知道你的真实IP。
    • 2.使用匿名代理,对方服务器可以知道你使用了代理,但不知道你的真实IP。
    • 3.使用高匿名代理,对方服务器不知道你使用了代理,更不知道你的真实IP。

3.验证码访问

  • 打码平台
    • 云打码平台
    • 超级🦅

4.动态加载网页 网站返回的是js数据 并不是网页的真实数据

  • selenium驱动真实的浏览器发送请求

5.数据加密

  • 分析js代码

urllib库的使用

使用urllib来获取百度首页的源码

第一次实现(返回的是二进制)

import urllib.request
import urllib.parse# (1)定义一个url 就是需要访问的地址
url = 'http://www.baidu.com'# (2)模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)
# request = urllib.request.Request(url)# (3) 获取响应中的页面的源码
# read() 返回的是字节形式的二进制数据
content = response.read()# (4)打印
print(content)

在这里插入图片描述

第二次实现(出现中文)


import urllib.request
import urllib.parse# (1)定义一个url 就是需要访问的地址
url = 'http://www.baidu.com'# (2)模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)
# request = urllib.request.Request(url)# (3) 获取响应中的页面的源码
# read() 返回的是字节形式的二进制数据
# 二进制 ->字符串 解码 decode('编码格式')
content = response.read().decode('utf-8')# (4)打印
print(content)

在这里插入图片描述

一个类型6个方法


import urllib.requesturl = 'http://www.baidu.com'# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)# 一个类型和六个方法
# print(type(response))  # <class 'http.client.HTTPResponse'># 按照一个字节一个字节的去读
# content = response.read()
# print(content)# 返回多少个字节
# content = response.read(5)
# print(content)  # b'<!DOC'# 读取一行
# content = response.readline()
# print(content)# 一行一行的读,读所有的
# content = response.readlines()
# print(content)# 返回状态码,如果是返回200,没错,其它的有问题
# print(response.getcode()) # 200# 返回的是url地址
# print(response.geturl()) # http://www.baidu.com# 返回的是一个状态信息
print(response.getheaders())

下载

  • 其中,视频地址找到对应的视频,F12或者右击检查,点击左上角箭头找到对应的src,复制即可
    在这里插入图片描述

import urllib.request# 下载一个网页
url_page = 'http://www.baidu.com'
# 在python中,可以写变量的名字,也可以直接写值
# urllib.request.urlretrieve(url_page, 'baidu.html')
# 下载图片
url_img = 'data:image/jpeg;base64,' \'/9j/4AAQSkZJRgABAQEASABIAAD' \'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 '# urllib.request.urlretrieve(url=url_img,filename='lisa.jpg')
# 下载视频
url_video = 'https://vd3.bdstatic.com/mda-njm4rp3ynmrcgbji/720p/h264/1666408939005073459/mda-njm4rp3ynmrcgbji.mp4?v_from_s=hkapp-haokan-suzhou&auth_key=1686207574-0-0-64a1636a497b253af8ac11833a417353&bcevod_channel=searchbox_feed&pd=1&cd=0&pt=3&logid=1774475530&vid=4484569357990666404&abtest=110193_2-110348_2&klogid=1774475530'urllib.request.urlretrieve(url_video, 'lisa.mp4')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

请求对象的定制

  • UA介绍:User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本。浏览器内核、浏览器渲染引擎、浏览器语言、浏览器插件等
    在这里插入图片描述
  • 不写headers会发现少了很多内容

import urllib.request# 第一种反爬:UA反爬  使用请求对象的定制
url = 'https://www.baidu.com'# url组成
# https://www.baidu.com/s?wd=lisa
# http/https  /www.baidu.com   80/443   s    wd=lisa  #
# 协议           主机           端口号     路径 参数      锚点
# http 80
# https 443
# mysql 3306
# oracle 1521
# redis 6379
# mongodb 27017headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 ''Safari/537.36 Edg/114.0.1823.37 '
}
# 因为urlopen方法中不能存储字典,所以headers不能传递进去
# 请求对象的定制
# 注意: 因为参数顺序的问题,不能直接写值,需要写参数
request = urllib.request.Request(url=url, headers=headers)response = urllib.request.urlopen(request)
content = response.read().decode('utf-8')
print(content)

编解码

一个或少量

  • urllib.parse.quote('周杰伦')

import urllib.request
import urllib.parseurl = 'https://www.baidu.com/s?tn=15007414_9_dg&wd='
name = urllib.parse.quote('周杰伦')
url = url + name
print(name) # %E5%91%A8%E6%9D%B0%E4%BC%A6
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 ''Safari/537.36 ''Edg/114.0.1823.37 '
}request = urllib.request.Request(url=url,headers=headers)
response = urllib.request.urlopen(request)
context = response.read().decode("utf-8")
print(context)

多个

  • urllib.parse.urlencode(data)

import urllib.request
import urllib.parsebase_url = 'https://www.baidu.com/s?'
data = {'wd':'周杰伦','sex': '男','location':'中国台湾省'
}
new_data = urllib.parse.urlencode(data)
url=base_url+new_dataheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 ''Safari/537.36 ''Edg/114.0.1823.37 '
}request = urllib.request.Request(url=url,headers=headers)
response = urllib.request.urlopen(request)
context = response.read().decode("utf-8")
print(context)

爬虫实战和小结

爬取豆瓣网前250的电影中文名

import requests
from bs4 import BeautifulSoupheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 ""Safari/537.36 Edg/114.0.1823.43 "
}for start_num in range(0,250,25):response = requests.get(f"https://movie.douban.com/top250?start={start_num}&filter=", headers=headers)html = response.textsoup = BeautifulSoup(html, "html.parser")all_titles = soup.findAll("span",attrs={"class": "title"})for title in all_titles:title_string = title.stringif "/" not in title_string:print(title_string)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小结

其实如果爬取简单的内容,爬虫并不是多么的复杂,模拟发送一个http请求,然后将获取的内容根据需要进行解析即可。但是,另一方面,爬虫所包含的内容很多,需要不断的接触才能熟练的运用。就拿上面这个案例来说,其中涉及到了一个反扒手段,通过给其一个headers来解决的,同时,获取到的内容通过插件进行解析,比我们自己手动快了很多,然后根据页面结构,将其中class为title的电影名摘取出来。这些对于不同的需求以及页面都是不一样的,都需要我们会根据不同的情况进行相应的分析。同时,刚刚的案例只是将其打印出来,但有时候还需要做一个持久化处理或者对获取到的数据进行分析,这些都需要别的技术的支持。所以说,爬虫入门很简单,基本就那么几步,但是想要精通并且获取各种不同的信息进行处理还需要学习各种各样的知识。

对于第一阶段的爬虫学习到这里就算结束了,主要是一直以来都觉得爬虫很牛逼,所以一直想搞一搞,但学过后发现并没有那么的高深,所以说,还是要不断学习,只有不断地学习,才能将那些不懂的觉得很牛逼的东西变成一些小角色。当然,对于爬虫的学习并不会止于此,后期有空我还会接着学习从而将其具体的运用到所需要的场景中。


http://www.ppmy.cn/news/347839.html

相关文章

Multimodal fusion via cortical network inspired losses(第一次优质论文分享)

Multimodal fusion via cortical network inspired losses 论文介绍1. 论文研究的任务是什么&#xff1f;2. 论文关注/拟解决的问题是什么&#xff1f;3. 论文提出什么方法如何解决这个问题&#xff1f;4. 如何设计实验 来证明 所提方法确实解决了 拟解决的问题&#xff1f; 论…

基于单片机全自动洗衣机仿真设计-protues仿真

资料下载地址-1063&#xff08;百度网盘&#xff09;&#xff1a;点击下载 摘 要 全自动洗衣机就是将洗衣的全过程(泡浸-洗涤-漂洗-脱水)预先设定好N个程序&#xff0c;洗衣时选择其中一个程序&#xff0c;打开水龙头和启动洗衣机开关后洗衣的全过程就会自动完成&#xff0c;…

【微机组成原理】【课程设计】洗衣机控制模拟---8086,8255,8259和8253(源码+仿真+原理图+参考报告)

1.2设计要求 本课程设计题目的主要内容是模拟一台洗衣机的运行控制。 &#xff08;1&#xff09;能正确选择洗衣机的注水、清洗、甩干等不同模式&#xff1b; &#xff08;2&#xff09;能正确显示各种模式下的不同状态&#xff1b; &#xff08;3&#xff09;能使洗衣机快…

ASEMI代理艾赛斯IXFA14N85XHV功率MOSFET综合指南

编辑-Z 在当今世界&#xff0c;电力电子在各种应用中发挥着至关重要的作用&#xff0c;从电源和电机驱动到电动汽车和可再生能源系统。这些应用中的关键部件之一是功率MOSFET&#xff08;金属氧化物半导体场效应晶体管&#xff09;。IXFA14N85XHV是一款先进的功率MOSFET&#…

Win10系统怎么设置滑动打开组合框?

Win10系统怎么设置滑动打开组合框&#xff1f;Win10系统戏中用户想要设置一下滑动打开组合框&#xff0c;但不知道怎么操作&#xff0c;用户需要打开Win10系统的高级系统设置选项&#xff0c;点击高级选项找到视觉效果选项&#xff0c;勾选滑动打开组合框选项保存即可。 解决方…

忘记Excel密码?在线轻松找回!

具体步骤如下&#xff1a;第一步百度搜索“密码帝官网”&#xff0c;第二步点击“立即开始”在用户中心上传文件即可&#xff0c;无需下载任何软件。这是最简单的办法&#xff0c;也是最安全的方法。Excel表格不能编辑&#xff1f;找回密码&#xff1f;解除限制&#xff1f;教程…

信必优成功案例-全球Tops汽车技术供应商

该集团是全球Tops汽车技术供应商&#xff0c;业务范围涵盖了汽油系统、柴油系统、汽车底盘控制系统、汽车电子驱动、起动机与发电机、电动工具、家用电器、传动与控制技术、热力技术和安防系统等。信必优于2021年开始为该客户服务&#xff0c;参与了客户多个项目&#xff0c;以…

Socket 传情:用 Python 编织 TCP 网络

文章目录 参考描述TCP 服务器端与 TCP 客户端通信的基本流程服务器端客户端 使用 socket 实现 TCP 服务器端实现监听套接字socket.socket()Socket().bind()IP 地址的选择本地回环地址某一特定 IP 地址空字符串 Socket().listen()监听套接字的实现 实现连接套接字Socket().accep…