python用urllib抓取网页元素_Python爬虫学习之旅--使用urllib爬取网页

Python爬虫学习之旅

第一天

使用urllib爬取网页

>>>Import urllib.request

>>>file=urllib.request.urlopen(“http://www.baidu.com”)

>>>data=file.read() 读取全部内容赋值给data

>>>dataline=file.readline() 读取一行内容赋值给dataline

>>>print(dataline) 输出爬取内容中的一行

>>>print(data) 输出爬取全部内容

我们将爬取的网页以网页的形式保存到本地

方法一:

>>>fhandle=open(“d:/python/1.html”,”wb”) 把爬取的网页读取赋给一个变量,以写入本地html等格式文档

>>>fhandle.write(data) 查看变量的值的容量大小

99437 该文件的字节数

>>>fhandle.close() 关闭该文件,做的有始有终

方法二:

>>>filename=urllib.request.urlretrieve(http://www.baidu.com,filename=” d:/python/1.html”)

>>>urllib.request.urlcleanup() 注意:urlretrieve执行中会产生一些缓存,需要清除。

urllib其他的一些常用方法:

>>>file.getcode() 获取当前爬取网页的状态码

>>>file.geturl() 获取当前爬取网页的url

>>>urllib.request.quote(“http://www.baidu.com”) 进行编码成符合标准的字符

>>> urllib.request.UNquote(“http%3A// www.baidu.com”) 已进行符合的字符编码进行解密。

有时候爬取一些网页或出现403错误,这是网页的反爬虫设置。我们可以设置headers信息模拟浏览器去方法这些网站。

>>> Import urllib.request

>>>file=urllib.request.urlopen(url) 爬取这个网页出现403错误

方法一:使用build_opener()修改报头

>>> Import urllib.request

>>> headers=("er-Agent", "zilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36")模拟浏览器去爬取网页内容

>>>opener=urllib.request.build_opener()

>>>opener.addheaders=[headers]

>>>data=opener.open(url).read()

>>> fhandle= open("d:/python/3.html","wb") 以网页形式存储到本地

>>>fhandle.write(data) 获取内容字节数

>>>fhandle.close()

方法二:使用add_header添加表头

>>> Import urllib.request

>>>req=urllib.request.Request(url)

>>>req.add_header("er-Agent", "zilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36")

>>>data=urllib.request.urlopen(req).read()

超时设置(timeout):循环中,有时能成功爬取网站内容并输出内容长度,有时却无法爬取。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值