python爬虫笔记01

python网络爬虫笔记01:基础知识与简单案例 网页渲染方式、请求头与响应头说明、豆瓣、百度翻译的案例 阅读详情

《精通python网络爬虫》笔记
下面代码大部分来自此书,仅为本人笔记

urllib.request

urllib.request的使用以及将爬取内容保存html文件
代码示例:


import urllib.request

url = "http://www.baidu.com"
file = urllib.request.urlopen(url)
data = file.read()  #读取全部,赋予一个字符串变量
dataline = file.readline()  #读取一行
datalines = file.readlines() #读取全部,赋予一个列表变量

#打印data内容
print(data)

#将抓取到的内容保存到html文件(法1)
#步骤:将爬取内容赋值给变量--》以写入的方式打开本地文件,命名*.html--》让变量值写入文件--》关闭文件
fhandle = open("F:/htmls/1.html","wb")
fhandle.write(data)
fhandle.close()

#抓取内容写入文件(法2)urllib.request.urlretrieve(url,filename=本地保存路径)
filename = urllib.request.urlretrieve(url,filename = "F:/htmls/2.html")

#清除缓存
urllib.request.urlcleanup()

#返回与当前环境有关的信息
print("当前环境信息:" + str(file.info()))

#返回爬取网页状态码200表示正确
print("网页状态码:" + str(file.getcode()))

#返回网页url
print("网页url:" + str(file.geturl()))

#编码解码
#汉字和一些字符&等不符合URL标准,需要编码
print("编码解码:")
print(urllib.request.quote("http://www.sina.com.cn"))
print(urllib.request.unquote("http%3A//www.sina.com.cn"))

设置报头模拟浏览器访问

示例代码
这里写图片描述


#爬虫模拟成浏览器访问
#有些网页无法爬取出现403错误

#方法1--使用builder_opener()修改报头

#由于urlopen()不支持一些HTTP的高级功能
#header = ("User-Agent",具体信息)

#过程:报头headers--》创建urllib.request.build_operder()对象opender--》opender.addheaders = [报头]设置报头--》
#对象.open(url).read  读取网页内容

import urllib.request

url = "http://blog.youkuaiyun.com/weiwei_pig/article/details/51178226"
headers = ("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0")

opener = urllib.request.build_opener()
opener.addheaders = [headers]
data = opener.open(url).read()

fhandle = open("F:/htmls/3.html","wb")
fhandle.write(data)
fhandle.close()


#方法2:使用 add_header()添加报头

req = urllib.request.Request(url)
#注意两个参数;对象名.add_header(字段名,字段值)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0')
data2 = urllib.request.urlopen(req).read()

超时设置


#超时设置
import urllib.request

#设置timeout的值,单位-秒
file = urllib.request.urlopen("http://www.baidu.com",timeout=30)

HTTP协议请求

GET请求

  1. 构建相应的URL地址–包括GET请求的字段名和字段内容,且URL地址满足GET请求格式—->http://网址?字段名1=字段内容1&字段名2=字段内容2
  2. 以相应的URL为参数,构建Request对象
  3. 通过urlopen()打开构建的Request请求
  4. 按需求处理抓取的内容

打开百度输入 hello 点击百度一下–得到网址–https://www.baidu.com/s?wd=hello……
分析规律可通过GET请求利用爬虫自动在百度上搜索某个关键字
示例代码

import urllib.request

keywd = "hello"
url = "http://www.baidu.com/s?wd=" + keywd

req = urllib.request.Request(url)
data = urllib.request.urlopen(req).read()

fhandle = open("F:/htmls/4.html","wb")
fhandle.write(data)
fhandle.close()

示例代码

import urllib.request

url = "http://www.baidu.com/s?wd="
#如果key是中文则会出现编码问题
key = "你好"
key_code = urllib.request.quote(key)
url_all = url + key_code

req = urllib.request.Request(url_all)
data = urllib.request.urlopen(req).read()

fh = open("F:/htmls/5.html","wb")
fh.write(data)
fh.close()

POST请求

  1. 设置好URL地址
  2. 构建表单数据,并使用urllib.parse.urlencode对数据精选编码处理
  3. 创建Request对象,参数包括URL地址和要传入的数据
  4. 使用add_header()添加头信息,模拟浏览器
  5. 使用urllib.request.urlopen()打开对应的Request对象,完成信息传递
  6. 后续处理。。。

这里写图片描述
示例代码


#post请求--登录、注册等操作

import urllib.request
import urllib.parse

url = "http://www.iqianyue.com/mypost"
postdata = urllib.parse.urlencode({
    "name":"zran",
    "pass":"abcd"
}).encode('utf-8') #将数据使用urlencode编码处理后,使用encode()设置为utf-8编码

req = urllib.request.Request(url,postdata)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0')
data = urllib.request.urlopen(req).read()

fh = open("F:/htmls/6.html","wb")
fh.write(data)
fh.close()

代理服务器的使用

示例代码


#代理服务器的使用
def use_porxy(proxy_addr,url):
    import urllib.request
    proxy = urllib.request.ProxyHandler({'http':proxy_addr})
    opener = urllib.request.build_opener(proxy,urllib.request.HTTPHandler)
    urllib.request.install_opener(opener)
    data = urllib.request.urlopen(url).read().decode('utf-8')
    return data

#代理服务器地址,http://www.xicidaili.com/
proxy_addr = "118.212.137.135:31288"
data = use_porxy(proxy_addr,"http://www.baidu.com")
print(len(data))

调试log的打印

  1. 分别使用urllib.request.HTTPHander()和urllib.request.HTTPSHander()将debuglevel值设为1
  2. 使用urllib.request.build_opener()创建自定义的opener对象,并使用 1. 中设置的·值作为对象
  3. 用urllib.request.install_opener创建全局默认的opener对象,这样在使用urlopen时就会使用我们安装的opener对象
  4. 后续操作,如urlopene()等

#运行程序时打印调试log

import urllib.request

httphd = urllib.request.HTTPHandler(debuglevel=1)
httpshd = urllib.request.HTTPSHandler(debuglevel=1)
opener = urllib.request.build_opener(httphd,httpshd)
urllib.request.install_opener(opener)
data = urllib.request.urlopen("http://www.baidu.com")

异常处理URLError

未~

Unsloth Desktop 本地大模型微调量化实战指南 大语言模型的本地化定制正在成为开发者与内容创作者的重要需求,而微调与量化则是其中最关键的两项技术。LoRA 与 QLoRA 通过仅训练少量低秩矩阵,大幅降低显存占用和训练成本,让消费级 GPU 也能完成模型适配;GGUF 格式则打通了训练与推理的边界,使微调后的模型可直接接入 Ollama、llama.cpp 等主流推理引擎。本文以 Unsloth Desktop 为切入对象,从其底层加速原理出发,梳理了环境准备、模型加载、对话测试、量化导出、微调验证及 API 批量调用的完整链路,并针对显存优化、端口冲突 阅读详情

相关推荐

西门子S7-1200与汇川SV660F伺服Profinet通讯调试实战

在工业自动化领域,Profinet作为工业以太网标准协议,凭借其高实时性和灵活组网能力,已成为伺服驱动器与PLC通讯的主流选择。其核心原理是通过设备名识别、IP分配以及标准报文(如111速度报文、105定位报文)传输控制字与状态字,实现驱动器的精准控制。相比传统脉冲或CANOpen方案,Profinet直连省去了协议转换网关,降低了成本与故障点,尤其适用于绕线设备、包装机械等中小型单轴或多轴运动控制系统。本文以西门子S7-1200 PLC搭配汇川SV660F伺服为例,完整梳理了从GSDMD组态、InoDri

weixin_29184371的博客 227

pythonurllib实战教学_Python——关于爬虫基础Urllib实战

今天来实际运行一下关于爬虫的一些小玩意首先,我们打开IDLE,今天我们查询一下关于优快云的标题名称。>>> import urllib>>> import urllib.request>>> data=urllib.request.urlopen("https://www.csdn.net").read().decode("utf-8","i...

weixin_29529047的博客 368

Silvaco TCAD 2018安装后,如何配置TonyPlot 5.0.22.R并解决绘图报错?

本文详细介绍了在Windows系统上安装Silvaco TCAD 2018后,如何正确配置TonyPlot 5.0.22.R并解决常见的绘图报错问题。内容包括版本兼容性分析、环境变量设置、常见错误解决方案以及性能优化建议,帮助用户顺利完成仿真结果的可视化工作。

weixin_31031711的博客 420

self.headers = CaseInsensitiveDict((to_native_string(name), value) for name, value in headers.it

报错原因是self.headers为字典格式,写成了字符串格式,会报错!

weixin_44424997的博客 1166

Python解析骑行fit文件:从数据缺失到完整记录

本文详细介绍了如何利用Python解析和处理骑行FIT文件,解决数据缺失问题。通过使用fitparse库读取二进制FIT文件,并结合Garmin FitCSVTool进行格式转换,指导读者一步步诊断数据完整性、设计心率修补方案,并最终生成完整的骑行记录文件。该方法为骑行爱好者提供了灵活的数据修复与自定义分析能力。

weixin_29062255的博客 456

SAP CO实战:如何用KKA2/CJ88结果分析码搞定项目收入成本匹配(附真实案例)

本文深入探讨了SAP CO模块中KKA2和CJ88结果分析码在项目收入成本匹配中的高阶应用。通过真实案例解析,详细介绍了这两种分析码在分阶段收入确认和终验法项目中的配置技巧与实战经验,帮助财务人员高效解决复杂业务场景下的财务数据处理难题。

weixin_29230773的博客 168

python3 模拟POST请求时 “Content-Type”指定编码会消失的问题

HTTP请求 服务器默认GBK编码时 浏览器UTF-8编码 如果请求时不指定编码格式就会乱码 python3 模拟POST请求时 “Content-Type”指定编码会消失的问题如下代码所示 在外部指定的”Content-Type”=”application/x-www-form-urlencoded; charset=UTF-8” 但是用抓包后返现charset=UTF-8消失了变

打怪升级 1万+

基于知识图谱的农作物病虫害问答系统设计与实现

基于规则的问题分类是自问答系统诞生以来就一直存在的方式,主要代表就是众多的专家系统,构建专家系统采用的是规则分类器,优点是能够对特定领域、特征明显的问题进行高效精准问答,但是。,在问答系统中,问题以语音及文本字符等自然语言形式输入,利用问答系统的内部的逻辑处理模块,通过自然语言处理技术获得输入问句的详细语义信息,再经过知识检索、置信分析等步骤,自然语言处理中,用于文本分类任务的机器学习方式有两种,一种用传统的机器学习,如 NBC、SVM 等,另一种采用深度学习,如 CNN 和 RNN 等。

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 2166

Python——关于爬虫基础Urllib实战

今天来实际运行一下关于爬虫的一些小玩意 首先,我们打开IDLE,今天我们查询一下关于优快云的标题名称。 >>> import urllib //调用模块 >>> import urllib.request >>> date=urllib.request.urlopen("http://www.jd...

Xa_L 680

Ubuntu零基础教学-史上最详Ubuntu20.04安装教程,超级详细,强烈建议收藏!

官网地址:https://www.vmware.com/ 1、VMware Workstation Pro 15.5.1在Windows 10的安装不再介绍了,一路下一步即可。 2、下面详细介绍在VMware 虚拟机里安装Ubuntu 20.04 LTS的步骤

**My Coding Family** 2万+

PyTorch实战(13)——图卷积网络(Graph Convolutional Network,GCN)

图卷积网络 (Graph Convolutional Network, GCN) 模型能够同时结合节点级特征和图级(邻域)信息进行分类,显著提升了图数据建模能力,适用于节点分类、图分类等多种任务。本节中,我们通过 PyTorch Geometric 库在 CiteSeer 图数据集上构建模型,们首先用前馈神经网络作为基线模型完成节点分类任务,随后用 GCN 模型替代前馈网络显著提升了分类准确率。

盼小辉丶的博客 3254

【Python网络爬虫笔记】week01

Requests库入门 Requests库安装 http://www.python-requests.org 安装方法,以管理员身份打开cmd,在cmd中输入如下命令: pip install requests requests库的7个主要方法 方法 说明 requests.request() 构造一个请求,支撑以下各方法的基础方法 requests.get() 获取HTML...

Brielle_Zhang的博客 320

智能测试策略优化:平衡覆盖率、时间和资源

在软件开发过程中,测试是确保软件质量的关键环节。然而,测试工作往往面临着诸多挑战,其中如何在保证测试覆盖率的前提下,合理分配时间和资源是一个核心问题。本文章的目的在于探讨智能测试策略的优化方法,帮助软件测试团队在有限的时间和资源条件下,实现尽可能高的测试覆盖率。文章的范围涵盖了智能测试策略的核心概念、算法原理、数学模型、实际应用案例以及相关工具和资源等方面。本文将按照以下结构进行组织:首先介绍智能测试策略优化的背景和相关概念,包括核心术语和缩略词的定义;

AIGC应用创新大全的博客 620

【python爬虫学习笔记】01 python网络爬虫与信息提取

来自于MOOC网的北京理工大学嵩天老师的python爬虫与信息提取的课程笔记,同步学习,持续更新 python网络爬虫与信息提取 课程分为以下6个部分 requests 自动爬取html页面,自动网络请求提交 robots.txt 网络爬虫排除标准 beautiful soup 解析html页面 projects 实战项目A/B Re 正则表达式详解,提取页面关键信息 Sc...

ccszbd的博客 430

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Python网络爬虫与信息提取笔记01-Requests库入门

既然选择学习网络爬虫,我们一定要知道,Requests是一个能够自动爬取HTML页面、自动网络请求提交的优秀的第三方库,入门第一步就是安装这个第三方库,我们默认此时你已经安装好了PythonIDLE,本人学习时安装的Python环境为Python3.7.4: 第一步:管理员权限打开cmd,输入“pip install requests”,即可下载安装(我的提示已经安装过了,如果你在此之前还没有...

MARS_098的博客 830

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

学习笔记(01):《从零起步,系统掌握Python网络爬虫》-爬虫介绍

立即学习:https://edu.csdn.net/course/play/24756/280645?utm_source=blogtoedu 测试1111111111 测试1111111111测试1111111111 测试1111111111 测试1111111111 测试1111111111 测试1111111111测试1111111111 测试1111111111 测试111...

啊啊啊啊2 779

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python学习笔记-爬虫01

#============================爬虫准备工作============================ # 参考资料     # python网络数据采集, 图灵工业出版     # 精通Python爬虫框架Scrapy, 人民邮电出版社     # [Python3网络爬虫](http://blog.csdn.net/c406495762/article/details/...

maopc1987的博客 388

千峰Python爬虫笔记day01

爬虫工作流程:1.将种子URL放入队列 2.从队列获取URL,模拟浏览器访问URL,抓取内容 3.解析抓取的内容,将需要进一步抓取的URL放入工作队列,存储解析后的内容。(可以用文件、MySQL、SQLite、MongoDB等存储) ps:去重:Hash表,bloom过滤器 抓取策略:深度优先、广度优先、PageRank(SEO干的事儿)、大站优先 爬虫口头协议-robots协议,如www.t...

云の博客 1733

学习笔记(01):150讲轻松搞定Python网络爬虫-爬虫介绍(资料在第一节中下载)

【课程介绍】 本课程总体分成五大模块,分别是网络请求、数据解析、数据存储、爬虫进阶、Scrapy框架和分布式爬虫,包含了一个爬虫工程师需要掌握的几乎所有技能,知识点非常体系。实战部分都是紧贴知识点,即学即用,紧跟潮流。课程还配有许多作业,通过作业可以让学生实现真正把技术转成自己的技能的目的。 【课程内容包括】 共150讲课程+...

LittleJanejane的博客 301

python scrapy爬虫笔记01

【python scrapy 爬虫】 1 环境配置     win10; python3.7; 2 爬虫project【第三方包scrapy,re】 【 scrapy 相关】 【 pip安装 】 pip install Scrapy; 【scrapy 一些相关依赖】 pywin32 pyth...

weixin_30595035的博客 113

学习笔记(01):《从零起步,系统掌握Python网络爬虫》-爬虫开发工具安装

本课是一门面向企业实际需求,专为零基础想入门并进阶中级python爬虫工程准备。 课程从最基本的网络抓包开始讲起,到网络请求,再到数据解析和数据存储,再到反反爬虫和分布式爬虫,技术要点应有尽有。   一边学习一边实操实战项目,从易到难,打好基础,层层深入。不同的实战项目锻炼不同的技能点,让你牢牢掌握爬虫工程师的核心技能。课程以...

chuckbas5lora的博客 205

Python 爬虫篇#笔记01# | 初识爬虫(爬虫原理和技术)

爬虫是一门综合性很强的学科(杂学)。PythonHTMLJavaScript正则表达式XPath数据库Redis消息队列DockerELKHadoop数据分析ETL中间人攻击自动化测试技术可视化……这其中的任何一项,在一个大公司里面都可以让很多人来做。变通——只要能够获得数据,任何技术都可以使用。所谓草木竹石皆可为剑。爬虫不应该是一个枯燥的一成不变的模式化的工作。而是一个充满了创意和挑战,能够让旁观者大呼“我X还能这样搞”的工作。

Naiva的博客 1279

学习笔记(01):150讲轻松搞定Python网络爬虫-爬虫开发工具安装

往下看:150讲课程内容花2分钟了解下~ 重点:通过爬虫进阶的知识点我们能应对大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度! 你将收获~~ 1、面向企业实际需求,为零基础从入门到进阶中级python爬虫工程打造。 2、从网络抓包开始讲起,到网...

weixin_46362895的博客 153
上一篇: 《SQL必知必会》随书学习笔记
下一篇: python爬虫笔记02
时光life
博客等级 码龄9年 24粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值