python爬虫学习笔记(1)

   日期:2024-11-03    作者:caijiyuan 移动:http://qyn41e.riyuangf.com/mobile/quote/265.html

本人使用了anaconda3中的python3环境,进行爬虫的环境为anaconda中的spyder,使用anaconda具体详细原因及安装教程可见
Anaconda3详细安装使用教程及问题总结

python爬虫学习笔记(1)

request就是请求的意思,主要用于url信息的请求

urlopen()

urllib.request.urlopen(“网址”)
实现向该网站发起访问请求,并获取响应结果。

urlopen()详细介绍可见python中urlopen()介绍
urlopen()方式所请求的网址访问不能设置用户代理,不支持重构User-Agent,初步认为代理是用于模仿浏览器访问网页所设置的,这个可以看作是爬虫与反爬虫作斗争的第一步。
关于网页的编码方式想了解更多可以参考网页编码方式

Request()

这个函数看着很奇怪,因为他就是之前urllib中request模块中首字母r进行大写后的名称。
通过Request()方式请求访问网址可用进行重构User-Agent,操作为

通过上面的直接使用urlopen()以及先用Request()构造新的User-Agent在使用urlopen()打开,可以看出来,url本身就可以作为urlopen的参数,也可以通过Request给url加了个headers后,再作为urlopen的参数。
更多的浏览器请求头可以参考浏览器User-Agent汇总

parse的意思是解析,这个模块主要就是用于encode转码操作。

urlencode()

按我的理解,urlencode()是的作用说白了就是将{key:value}构造成的key=encode(value)字符串格式,用于url的构造。举例

可见我们再爬取网页时首先就要对网页的url有充分的了解,关于百度网址的参数解析可以参考百度搜索网址参数解析

很奇怪的是,parse中虽然提供了{key:value}的urlencode方式,却没有对应的urldecode方式。下面介绍另一种编码方式。

quote

quote简单粗暴,它就是直接将value的值进行编码,转换为%e8…。
在拼接url的时候就可以直接

quote就有对应的反quote的函数,unquote,顾名思义,就是进行解码。

html打开出现乱码

在学习过程中,对代码还不是很理解,导致将他人代码敲入后,爬取了信息把并存入了一个html文件,结果打开出现乱码。
已解决
html文件打开出现乱码,但将其转换为txt格式打开确实有正常代码的,查明原因后知道了是由于编码解码方式等原因而导致的。
一开始我是直接将文件另存时,设置其编码方式,在新建文件打开时正常显示。后发现了原因,是在从网页爬取信息下来的时候解码方式是utf-8,然而在保存至html文件中时选择的是gb18030的方式,将其修改为utf-8后正常显示。但所参考的代码的作者意图就不得而知了。

进行百度搜索时,出现安全验证网页无法打开情况

<title>百度安全验证</title>
<div class=“timeout-title”>网络不给力,请稍后重试
(大部分省略)

查明原因可能时代理方面的问题,被服务器拒绝加入了,具体如何操作较为复杂,毕竟我是初学者,看也看不懂。


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号