Python爬虫(二)用Urllib快速爬取网页

本文介绍了使用Python的Urllib库进行网页爬取的步骤,包括直接保存网页、设置超时、模拟浏览器Header、处理HTTP请求(GET、POST)。通过设置Headers模拟浏览器行为以避免被识别为爬虫,还探讨了代理服务器的使用,以解决IP被屏蔽的问题。
摘要由CSDN通过智能技术生成

一、用Urllib快速爬取网页

1.     爬取网页直接保存

通过调用urllib.request.urlretrieve直接将爬取的网页保存到对应的文件中。

filename = urllib.request.urlretrieve("http://www.baidu.com",filename = "e:/pythonchar/2.html")

 

2.     纯粹的爬取网页,简单思路如下:

1、  首先爬取一个网页并将爬取到的内同读取出来赋给一个变量。

2、  以写入的方式打开一个本地文件,并将名称命名为.html形式

3、  将1中的变量的值写入到打开的文件中

4、  关闭文件。

 

import urllib.request
file = urllib.request.urlopen(
"http://www.baidu.com")
data = file.read()
fhandel =
open("e:/pythonchar/1.html","wb");
fhandel.write(data)
fhandel.close();

3.     超时设置

可以设置爬虫的响应时间,timeout取值为响应时间的长度在0-timeout之间。如果某个网页的响应时间过长,我们可以考虑网页爬取失败。

url = ('http://www.baidu.com')

for i inrange(1,100):
   
try:
        file =urllib.request.urlopen(url,timeout=1)
        data = file.read();
        print(len(data))
    except Exception as e:
        print("出现异常->>>"+str(e)

 


4.     浏览器属性的模拟—Headers属性

目的:通过设置headers信息将我们的爬虫伪装成浏览器。

Headers的获取:

例如打开百度按F12进行查询headers信息:

获取User-Agent信息:

Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36Edge/17.17134

使用add_header()添加报头

1、  设置要爬取的网址,然后使用urllib.request.Request(url)创建一个Request对象,并保存到变量名req中。

2、  使用add_header的方法添加报头信息,Request对象名.add_header(字段名,字段值)

3、  使用urllib.request.urlopen(req)爬取网页

4、  将网页值保存到data

5、  写入对应的html文件中

6、  爬取结束。

url = ('http://www.baidu.com')
headers = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134';
req = urllib.request.Request(url);
req.add_header('User-Agent',h
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值