Python提供了许多Module,通过这些Module,可以很简单的做一些工作。比如,要获得cloga这个词在百度搜索结果页中的排名结果(排名结果+URL),这就是一个很简单的爬虫需求。
首先,要通过urllib2这个Module获得对应的HTML源码。
import urllib2
url='http://www.baidu.com/s?wd=cloga'
content=urllib2.urlopen(url).read()
通过上面这三句就可以将URL的源码存在content变量中,其类型为字符型。
接下来是要从这堆HTML源码中提取我们需要的内容。用Chrome查看一下对应的内容的代码(也可以用Firefox的Firebug)。
可以看到url的信息存储在span标签中,要获取其中的信息可以用正则式。
import re
urls_pat=re.compile(r'span 百色网站建设公司 class="g"(.*?)/span')
siteUrls=re.findall(results_pat,content)
re.compile是将字符串编译为用于python正则式的模式,字符前的r表示是纯字符,这样就不需要对元字符进行两次转义。re.findall返回的是字符串中符合results_pat的列表,由于在results_pat中使用了子表达式,所以results存储的就是子表达式所匹配的内容,即span与/span之间的内容。
此外,也可以用BeautifulSoup这个Module来获得提取同样的信息。直接从源码中用正则式提取信息适用于那些按照标准写的HTML页面,BeautifulSoup则可以处理一些编写不规范的页面。
from BeautifulSoup import BeautifulSoup
soup=BeautifulSoup(content)
siteUrls=soup.findAll('span',attrs={'class':'g'})
BeautifulSoup()可以把刚才抓到的字符串转化为Beautiful的对象。这样就可以应用BeautifulSoup提供的一些方法处理HTML。比如,findAll('a')就可以返回一个所有页面的a标签的List,我觉得这个和JS里面的getElementByTagName挺像的。另外也可以指定attrs参数,这个参数就是一个筛选条件,其数据结构是一个字典。findAll('span',attrs={'class':'g'})的意思就是返回所有class='g'的span标签的内容(包括span标签自身)。
用正则式和BeautifulSoup获得内容还需要进一步处理,因为其中包含html标签。类似,hi.baidu.com/bcloga/b 2010-8-29或者span hi.baidu.com/bcloga/b 2010-8-29 /span,同样可以用正则式的sub方法替换掉这些标签。
strip_tag_pat=re.compile(r'.*?')
file=open('results000.csv','w')
for 巴彦淖尔网站建设公司 i in results:
i0=re.sub(strip_tag_pat,'',i)
i0=i0.strip()
i1=i0.split(' ')
date=i1[-1]
siteUrl=''.join(i1[:-1])
rank+=1
file.write(date+','+siteUrl+','+str(rank)+'\n')
file.close()
再来就是把对应的结果输出到文件中,比如,排名、URL、收入日期这样的形式。OK,这样就用Python实现了一个简单的爬虫需求。秀一下上面代码的输出。
文章来源:Cloga与网公司网站建设站|数字分析,转载请注明出处。
南京牧狼文化传媒有限公司简介:
牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!
公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!
为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!
主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等
合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯
资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。