1. 简单网页
python扒网页主要根具URL来获取网页的内容。在python库中主要是urllib2起作用。
In [5]:import urllib2
In[6]:response=urllib2.urlopen("http://vip.stock.finance.sina.com.cn/corp/go.php/vFD_FinanceSummary/stockid/600000.phtml")
In [7]: print response.read()
此外还可以把上面的urlopen的参数传给一个request,效果是一样。
In [12]: import urllib2
In[12]:request=urllib2.Request("http://quotes.money.163.com/f10/zycwzb_600000.html#01c02")
In [12]: response=urllib2.urlopen(request)
In [12]: print response.read()
这里urlopen库的具体用法为:
urlopen(url, data, timeout)
第一个是URL,第二个是访问URL要传的数据(比如用户名和密码),第三个是设置超时时间。后两个参数可以不写。
2.POST和GET
上面展示了基本的抓取,现在网页都是动态的,要求我们传递数据给他,比如登录优快云的时候需要用户名和密码,而数据的传递有POST和GET两种方式。
区别:POST不会在网址上显示所有的参数;GET直接以链接的形式访问,链接中包含了所有的参数,比如密码和用户名。
- POST
import urllib
import urllib2
values={}
values['username']="xiaoming@qq.com"
values['password']="1234567"
data = urllib.urlencode(values)
url = "https://passport.youkuaiyun.com/account/login?from=http://my.youkuaiyun.com/my/mycsdn"
request = urllib2.Request(url,data)
response = urllib2.urlopen(request)
print response.read()
- GET
import urllib
import urllib2
values={}
values['username'] = "xiaoming@qq.com"
values['password']="123456"
data = urllib.urlencode(values)
url = "http://passport.youkuaiyun.com/account/login"
geturl = url + "?"+data
request = urllib2.Request(geturl)
response = urllib2.urlopen(request)
print response.read()
我们需要定义一个字典,名字为values,参数设置了username和password,利用urllib的urlencode方法将字典编码,命名为data.
本文介绍了使用Python进行网页抓取的基本方法,包括通过URL获取网页内容、使用urllib2库发送GET和POST请求等。同时对比了GET和POST请求的区别,并提供了具体的代码示例。
750

被折叠的 条评论
为什么被折叠?



