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

爬虫基础学习-基本原理和GET请求

爬虫学习阶段:

1、基本爬虫:可以爬数据,可以做登录,翻页,根据账户权限进行爬取
2、进阶爬虫:js逆向、ast 反爬绕过  

爬虫的基本原理:
爬虫概述:
获取网页并提取和保存信息的自动化程序
1.获取网页
2.提取信息:css选择器  xpath
3.保存数据(大数据时代)
4.自动化

5.学习爬虫掌握的python模块:urllib (Python 内置的 HTTP 请求库)
包括4个模块:
request模块:最基本的http请求模块
error模块:异常处理模块
parse模块:工具模块 提供url的处理方法
robotparser模块:识别robot.txt

最基本的请求:
使用openurl发送
get请求:
带参数直接在url上面拼接
参数可能不止一个
多参数:urllib.parse.urlencode(params)
基本的URL地址和一个包含查询参数的字典params
使用urllib.parse.urlencode()函数将查询参数编码为查询字符串

#! /usr/bin/env python3import urllib.requestdef load_urlbaidu():url = 'http://www.baidu.com'response = urllib.request.urlopen(url)#print(response.code)data = response.read()str_data = data.decode('utf-8')print(str_data)with open('baidu.html', 'w', encoding='utf-8') as f:f.write(str_data)load_urlbaidu()
#! /usr/bin/env python3import urllib.request
import urllib.parsedef load_urlbaidu():url = 'http://www.baidu.com/s?'params = {"wd": "孙悟空","pn": "80"}query_str = urllib.parse.urlencode(params)final_url = url + query_str# print(final_url)# 存在汉字需要进行转码# encode_url = urllib.parse.quote(final_url, safe=string.printable)# print(encode_url)response = urllib.request.urlopen(final_url)# print(response.code)data = response.read()str_data = data.decode('utf-8')print(str_data)with open('baidu_wukong.html', 'w', encoding='utf-8') as f:f.write(str_data)load_urlbaidu()
http://www.dtcms.com/a/343379.html

相关文章:

  • JavaScript 基本语法
  • 智慧城市SaaS平台/市政设施运行监测系统之空气质量监测系统、VOC气体监测系统、污水水质监测系统及环卫车辆定位调度系统架构内容
  • 学习嵌入式之驱动
  • 3.2.6 混凝土基础施工
  • Chrome 内置扩展 vs WebUI:浏览器内核开发中的选择与实践
  • C++入门自学Day16-- STL容器类型总结
  • Git标准化开发流程
  • iOS 应用上架多环境实战,Windows、Linux 与 Mac 的不同路径
  • 详解开源关键信息提取方案PP-ChatOCRv4的设计与实现
  • 哈尔滨云前沿服务器租用类型
  • IoTDB如何解决海量数据存储难题?
  • 多模态大模型研究每日简报【2025-08-21】
  • Python学习-- 数据库和MySQL入门
  • 在线课程|基于SprinBoot+vue的在线课程管理系统(源码+数据库+文档)
  • 华为仓颉语言的函数初步
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(三) 文本标签、按钮、文本框基本使用
  • Rust 入门 模块 (二十二)
  • 意象驱动下的感知与认知信息结构:上古汉语同源词研究视角——基于黄易青《上古汉语同源词意义系统研究》的理论框架
  • Eject配置
  • 常见的端口扫描
  • 从零到一:RAGFlow 本地部署全攻略
  • Python工程师向项目管理转型的深度分析与学习道路规划
  • 容器化与云安全实践:ChartMuseum、私有仓库、云安全、应用部署、生命周期、定时任务、HPA管理案例流程
  • visual studio更改git提交的用户名和邮件
  • LT8712SX,Type-C/DP1.4 /eDP转 DP1.4/HD-DVI2.0 带音频
  • 服务区小汽车违停检测算法创新与实践
  • Android系统框架知识系列(十二):通知中枢 - Notification Manager Service深度解析
  • 工厂模式全解析:简单、方法、抽象工厂详解
  • comfyUI背后的一些技术——Checkpoints
  • leetcode_238 除自身以外的数组乘积