Python爬虫入门
还没有写完...待续...看不懂的可以等我视频出来~
视频链接:http://www.bilibili.com/video/av11253964/
参考大佬的博客:博客是Python社区的一位大佬写的,博客园死活不让我放链接,说违禁...不知道怎么回事,呵呵了....我偏要放,就算是图片,是吧大佬...
HTTP的两种方法(一种是GET一种是POST):http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
最简单的一个爬虫代码:
#!/usr/bin/python
#coding:utf-8
import urllib2 response = urllib2.urlopen('http://www.baidu.com/') html = response.read() print html
看看上面的代码,陌生吗?反正很少是吧?我来教你,很简单的
现在我们来加一个Request,来看看代码怎么样了
#!/usr/bin/python #coding:utf-8 import urllib2 req = urllib2.Request('http://www.cnblogs.com/yunquan/') response = urllib2.urlopen(req) the_page = response.read() print the_page
现在加了request之后,结果是一模一样的,那为什么还要加request这个东西呢?是因为request这东西可以传递两个参数
1.发送Data数据表单
2.作为HTTP的headers来额外的发送数据或本身的信息
那我们就来看看这两种情况
一、发送Data数据表单
#!/usr/bin/python #coding:utf-8 import urllib import urllib2 url = 'http://www.baidu.com' values = {'name' : 'Michael Foord', 'location' : 'pythontab', 'language' : 'Python' } data = urllib.urlencode(values) req = urllib2.Request(url, data) response = urllib2.urlopen(req) the_page = response.read()
这里面的values也不知道是个啥格式,反正就是有值,然后我们把values给编码了....用的urlencode...因为浏览器只认识编码那种非人类的东西,所以我们得投其所好...
然后,当当当当!我们下面的request是不是多了一个参数?对,就是被编码后的values...再向下就是套路了,一个open,一个read....全是套路....
然后柘林还有一个HTTP发送请求的两种格式,参考:http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
import urllib2 import urllib data = {} data['name'] = 'Somebody Here' data['location'] = 'pythontab' data['language'] = 'Python' url_values = urllib.urlencode(data) url = 'http://www.baidu.com' full_url = url + '?' + url_values data = urllib2.open(full_url)
二、作为HTTP的headers来额外的发送数据或本身的信息
import urllib import urllib2 url = 'http://www.baidu.com' user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' values = {'name' : 'Michael Foord', 'location' : 'shuyuqnuan', 'language' : 'Python' } headers = { 'User-Agent' : user_agent } data = urllib.urlencode(values) req = urllib2.Request(url, data, headers) response = urllib2.urlopen(req) the_page = response.read()
安装beautifulsoup
#Mac下安装
sudo easy_install beautifulsoup4
#Ubantu下安装
pip install beautifulsoup4
我们来写一个爬图片的爬虫(文件夹自己建,link那里看情况写)
#!/usr/bin/python #coding:utf-8 import urllib import urllib2 import os from bs4 import BeautifulSoup def getAllImageLink(): html = urllib2.urlopen('http://ac.qq.com/').read() soup = BeautifulSoup(html,'html.parser') liResult = soup.findAll('img') count = 0; for image in liResult: count += 1 link = ‘看情况’+image.get('src') #这里看情况,src和url一样了就不写,不一样的话就加上前缀,直到link等于url为止 imageName = count filesavepath = '/Users/net/Desktop/testpython/%s.jpg' % imageName print filesavepath urllib.urlretrieve(link,filesavepath) print filesavepath if __name__ == '__main__': getAllImageLink()