BeautifulSoup+正则+Python 抓取网页数据
最近在研究利用Python抓取新浪微博数据,用了五天的时间终于写出了这个代码,借鉴了好多人的经验,也接触到了很多新鲜的东西,在这里小小总结一下。 (一)Python模拟登陆新浪微博 这个主要是利用网上找的例子。 (二)BeautifulSoup 登陆完之后就是抓取数据部分了,这里我主要用到了两个技术。首先就是BeautifulSoup,这个是需要自己安装的,安装方法如下: Windows平台安装Beautiful Soup Beautiful Soup 的官方文档齐全,将官方给出的例子实践一遍就能掌握。官方英文文档,中文文档
我用BeautifulSoup主要是为了获取HTML文档里结构化的数据的列表,如果只是单单获取某一个数据,就可以采用正则。下面就是正则和soup一起用的例子 webpage = self.fetch(url) soup = BeautifulSoup(webpage) top_div=soup.findAll('div',{'id':'anything'}) all_a = top_div[0].findAll('a') userID = '' for a in all_a: str_href = a.get('href') #print str_href pattern = '/(d+)/info' my_href = re.findall(pattern,str_href) if my_href: userID = my_href[0] print 'userID: ' + userID (三)正则 Python+正则例子很多,我主要是参考这个教程http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 核心应该就是这个图了
代码例子如下: #获取页数 def get_page_count(self,url): pattern = 'type="hidden" value="(d+?)"' page_number = re.findall(pattern,self.fetch(url)) if page_number: return page_number[0] return 1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |