您的位置:首页 > 其它

打开网页总结

2016-07-20 10:22 148 查看
爬虫分为几个步骤,首先是获得url,然后下载url里面的源码,然后再去分析该源码里面我们所需要的东西。首先学习的是urlopen(url,data,timeout),后两者可以不写,来打开数据importurllib.requestresponse=urllib.request.urlopen("http://www.baidu.com")printresponse.read()
这样子就可以爬取整个网页了。
然而方法还是有很多。。。

3.构造Requset

其实上面的urlopen参数可以传入一个request请求,它其实就是一个Request类的实例,构造时需要传入Url,Data等等的内容。比如上面的两行代码,我们可以这么改写request=urllib.request.Request("http://www.baidu.com")response=urllib.request.(request)
printresponse.read()
一样的效果,只是方式不一样,对于request最多可以传递两个数据,(url,data),data就是比如是用户名和密码,就是打开网页时需要的登陆数据,才可以登陆到相对应的网页。接下来就是讲对应的data数据由来。

4.POST和GET数据传送

让我们来回忆一下get和post方式吧。最重要的区别是GET方式是直接以链接形式访问,链接中包含了所有的参数,当然如果包含了密码的话是一种不安全的选择,不过你可以直观地看到自己提交了什么内容。POST则不会在网址上显示所有的参数总的来说,get方式会在网页上显示你的data数据,而post方式则不会。这是post方式:
importurllib.request
importurllib.parse
values={}
values['username']='02蔡彩虹'
values['password']='XXXX'
url="http://www.baidu.com"
data=urllib.parse.urlencode(values)
request=urllib.request.Request(url,data)
content=urllib.request.urlopen(request).read()
print(data)
因为网页上的名字和密码需要进行编码,对于字典的编码就用

urllib.parse.urlencode(values)
它就会自动的编出符合等式的编码,对于编码,会在编码转换方面讲http://blog.csdn.net/haoni123321/article/details/15814111/,该链接里面有
这是get方式;
values={}

values['username']="1016903103@qq.com"
values['password']="XXXX"
data=urllib.parse.urlencode(values)
url="http://passport.csdn.net/account/login"
geturl=url+"?"+data
request=urllib.request.Request(geturl)
response=urllib.request.urlopen(request)
printresponse.read()
以上是urllib打开网页的方式
:使用selenium
fromseleniumimportwebdriver
browser=webdriver.Chrome()
browser.get('http://www.baidu.com/')
print(browser.page_source)
期间,他需要一个模拟浏览器,相当于打开浏览器的方法
最后一句就可以打开网页的所有链接
它的具体用法在后面会陆续讲到
三:使用requests

url="http://www.baidu.com"

html=requests.get(url)
print(html.text)
这样子即可获取相对应的网页


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: