最近对python爬虫产生了强烈的兴趣,所以在这里分享自己的学习路径,欢迎大家的建议。 我们相互交流,共同进步。
1 .开发工具
笔者使用的道具是sublime text3,它的短小和精悍,男人们可能不喜欢这个词。 我非常着迷。 我推荐给大家。 当然,如果你的电脑配置得很好,pycharm可能更适合你。
要构建sublimetext3python开发环境,建议您查看此博客:
[用[sublime构建python开发环境] [ http://www.cn blogs.com/code fish/p/4806849.html ]
2 .爬行动物介绍
爬行动物正如其名,像虫子一样,在互联网这个大网上爬行。 这样,我们就能得到自己想要的东西。
既然要登上互联网,就需要知道URL、法号' unifiedresourcelocator '、小名' link '。 其结构主要由三个部分构成。
(1)协议:类似于我们在网站上常见的HTTP协议。
2 ) (域名或IP地址)域名,例如www.baidu.com、IP地址、解析域名后的相应IP。
)3)路径)目录或文件等。
3.urllib开发最简单的爬行动物
(1) urllib介绍
模块
内部
urllib.error
exceptionclassesraisedbyurllib.request。
urllib.parse
parseurlsintoorassemblethemfromcomponents。
urllib.request
可扩展可编程语言。
urllib.response
响应类使用按urllib。
urllib.robotparser
loadarobots.txtfileandanswerquestionsaboutfetchabilityofotherurls。
)2)开发最简单的爬行动物
百度首页简洁大方,非常适合我们的爬虫。
爬行动物代码如下。
来自urllib导入请求
def visit_baidu () :
URL='http://www.baidu.com '
# openthe URL
req=request.urlopen(URL )
#读我的网址
html=req.read (
# decode the URL toutf-8
html=html.decode(utf_8) ) ) )。
是打印(html )
if __name__=='__main__':
visit_baidu ()
结果如下图所示。
在百度主页的空白中单击鼠标右键,查看审核要素,可以与我们的执行结果进行比较。
当然,request也可以生成可以用urlopen方法打开的request对象。
代码如下所示。
来自urllib导入请求
def vists_baidu () :
# createa request obkect
req=request.request (http://www.Baidu.com) )。
# openthe request object
response=request.urlopen(req )
#读我响应
html=response.read (
html=html.decode(utf-8 ) )。
是打印(html )
if __name__=='__main__':
vists_baidu ()
执行结果和刚才一样。
)3)错误处理
错误处理由urllib模块处理。 主要有URLError和HTTPError的错误。 其中HTTPError错误是URLError错误的子类。 这意味着HTTRPError也可以用URLError捕获。
HTTPError可以用代码属性捕获。
处理HTTPError的代码如下。
来自urllib导入请求
来自urllib import error
默认(: )
url='https://segmentfault.com/zzz '
req=request.request(URL )
try:
response=request.urlopen(req )
html=response.read ().decode ) (utf-8 ) )。
是打印(html )
excepterror.HTTPErrorase:
是打印(e.code )
if __name__=='__main__':
错误() )。
执行结果如下。
404是打印的错误代码。 关于这个细节,请自己在百度上查询。
可以用其reason属性捕获URLError。
chuliHTTPError的代码如下。
来自urllib导入请求
来自urllib import error
默认(: )
url='https://segmentf.com/'
req=request.request(URL )
try:
response=request.urlopen(req )
html=response.read ().decode ) (utf-8 ) )。
是打印(html )
excepterror.URLErrorase:
打印(e.reason ) )。
if __name__=='__main__':
错误() )。
执行结果如下。
为了处理错误,***两个错误都被写入代码中,越细越清晰。 请注意,HTTPError是URLError的子类,因此请确保将HTTPError放在URLError之前。 否则,输出URLError,如将404输出到Not Found。
代码如下所示。
来自urllib导入请求
来自urllib import error
***方法,URLErroe和HTTPError
默认(: )
url='https://segmentfault.com/zzz '
req=request.request(URL )
try:
response=request.urlopen(req )
html=response.read ().decode ) (utf-8 ) )。
是打印(html )
excepterror.HTTPErrorase:
是打印(e.code )
excepterror.URLErrorase:
打印(e.reason ) )。
大家可以更改url查看各种错误的输出形式。
【编辑推荐】
【责任编辑:枯木tel:(010 ) 68476606】
点赞0