当前位置: 首页 > news >正文

python应用day11--requests爬虫详解

 1.爬虫简介:

  • 简介:网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。

       原则上,只要是浏览器(客户端)能做的事情,爬虫都能做。

       爬虫只能获取到浏览器(客户端)所展示出来的数据。

  • 作用:数据分析中,进行数据采集的一种方式。

2.爬虫工作过程:

      ①向起始的 url 地址发送请求,并获取响应数据

      ②对响应内容进行提取

      ③如果提取 url,则继续发送请求获取响应

      ④如果提取数据,将数据进行保存

3.requests模块:

  • 简介 : requests 是用 python 语言编写的一个开源的HTTP库,可以通过 requests 库编写 python 代码发送网络请求,其简单易用,是编写爬虫程序时必知必会的一个模块。
  • 使用 requests 模块:

     ①安装

pip install requests
或者
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

    ②示例:请求百度,并获取响应内容

# 导入 requests 包
import requests
​
# 准备 url 地址
url = 'https://www.baidu.com'
​
# 使用 requests 发送 GET 请求,并设置请求头
headers_dic = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ""AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/136.0.0.0 Safari/537.36"
}
res = requests.get(path_url, headers=headers_dic)
response = requests.get(url)
​
# 获取响应的内容
# response.content:bytes,服务器返回的原始响应内容
# bytes -> str:bytes数据.decode('解码方式')
print(response.content.decode())# 获取请求头
print(response.request.headers)

 4.爬取单张图片:

import requestsurl = "https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png"
# 使用requests项目目标地址发送请求
res = requests.get(url)
# 获取响应内容
img_content = res.content
# 将获取的二进制图片存放到本地
with open("./images/logo.png", "wb") as file:file.write(img_content)

5.爬取多张图片:

import requests
import rebase_url = "http://127.0.0.1:8082"
res = requests.get(base_url + "/index.html")
html_content = res.content.decode()
# 获取html中src的图片路径:["./images/0.jpg",...]
img_list = re.findall(r'<img src="(.*?)"', html_content)for i, img_path in enumerate(img_list):# 拼接完整的请求url:# http://127.0.0.1:8082/images/0.jpgimg_url = base_url + img_path[1:]# 发送请求,获取响应的二进制图片response = requests.get(img_url)# 存储二进制图片到本地with open(f"./images/{i}.jpg", "wb") as file:file.write(response.content)

6.多线程爬取图片和gdp数据:

import requests
import re
import threadingdef get_img():base_url = "http://127.0.0.1:8082"res = requests.get(base_url + "/index.html")html_content = res.content.decode()# 获取html中src的图片路径:["./images/0.jpg",...]img_list = re.findall(r'<img src="(.*?)"', html_content)for i, img_path in enumerate(img_list):# 拼接完整的请求url:# http://127.0.0.1:8082/images/0.jpgimg_url = base_url + img_path[1:]# 发送请求,获取响应的二进制图片response = requests.get(img_url)# 存储二进制图片到本地with open(f"./images/{i}.jpg", "wb") as file:file.write(response.content)print("图片爬取完成")def get_gdp():url = "http://127.0.0.1:8082/gdp.html"res = requests.get(url)# 获取html内容html_content = res.content.decode()# 通过正则匹配国家和gdp金额data_list = re.findall(r'<a href=""><font>(.*?)</font></a>.*?<font>¥(.*?)亿元</font>', html_content, flags=re.S)# 创建文件并将内容写入到文件中with open("gdp.txt", "w", encoding="utf-8") as file:file.write(str(data_list))print("gdp爬取完成")if __name__ == '__main__':img_thread = threading.Thread(target=get_img)gdp_thread = threading.Thread(target=get_gdp)img_thread.start()gdp_thread.start()

http://www.dtcms.com/a/282675.html

相关文章:

  • Dify工作流节点-Agent
  • 前端上传 pdf 文件 ,前端自己解析出来 生成界面 然后支持编辑
  • 数据降维方法:PCA
  • Vue2.x封装预览PDF组件
  • 利用pdfjs实现的pdf预览简单demo(包含翻页功能)
  • 从0开始学习R语言--Day48--Calibration Curves 评估模型
  • ByteToMessageDecoder详解
  • 众趣分享 | 浅谈三维重建(空间计算)技术原理
  • STM32外设介绍5(DMA<直接存储器访问>)
  • 开源模型应用落地-qwen模型小试-Qwen3-Embedding 模型集成 vLLM 实战解析(二)
  • Python第三次作业
  • 【Node 日常使用 】
  • GitHub 趋势日报 (2025年07月15日)
  • 中望3D 2026亮点速递(1)-全新槽功能螺纹功能,减少繁琐操作
  • Oracle,PostgreSQL查看字段码值方式
  • 国内外服务器的不同之处
  • 【Qt】麒麟系统安装套件
  • 机器学习:AI 自主学习能力的来源
  • Rocky9安装Ansible
  • 网络安全(初级)(XSS-labs 1-8)
  • 【React Native】模态页Modal
  • 论文导读--PQ3D:通过分段级分组实现多模态特征融合和 MTU3D:在线查询表示学习与动态空间记忆
  • 【MAC技巧】Bash/Zsh切换失败的故障排除
  • aspect-ratio: 1 / 1样式在部分手机浏览器中失效的问题怎么解决?
  • 《R for Data Science (2e)》免费中文翻译 (第0章) --- Introduction
  • CURRENT_TIMESTAMP和NOW函数使用
  • Spring Boot 集成 Redis 并调用 Lua 脚本详解
  • multiprocessing.Pool 中的 pickle 详解
  • 文献精读:气候变化、CO2浓度提高和土地利用变化对全球陆地蒸散发的影响分析
  • C++矿井逃生游戏深度解析:迷宫生成与灯光渲染技术 | EasyX实战