一、简单读取网页,主要用到urllib模块。和读取普通的文件流程是一样的,
第一步,打开,不过打开本地文件用的是open()方法,而打开网页用的是urlopen()方法;
第二步,操作,当然这里是只读,即read()。
下面以Python3.6.1打印豆瓣网首页(https://www.douban.com/)为例:
<span style="color:#330099">'''
Created on 2017-4-16
@author: Administrator
'''
import urllib.request
url = "http://www.douban.com/ "
webPage=urllib.request.urlopen(url)
data = webPage.read() #读取
data = data.decode('utf-8') #设置读取的字符编码
print(data) #打印读取的内容
print(type(webPage))
print(webPage.geturl()) #当前页的url
print(webPage.info())
print(webPage.getcode())
</span>
输出如下:
二、伪装成浏览器来爬网页
有些网页,比如登录的。如果你不是从浏览器发起的起求,这就不会给你响应,这时我们就需要自己来写报头。然后再发给网页的服务器,这时它就以为你就是一个正常的浏览器。从而就可以爬了!
<span style="color:#330099">import urllib.request
url = 'http://www.baidu.com/'
req = urllib.request.Request(url, headers = {
'Connection': 'Keep-Alive',
'Accept': 'text/html, application/xhtml+xml, */*',
'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko'
})
oper = urllib.request.urlopen(req)
data = oper.read()
data=data.decode("utf-8")
print(data) </span>