关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回

BeautifulSoup初识

发布时间:2022-07-27 13:55:22
本来想用scrapy框架来抓取某个网站的内容,结果发现太庞大,要很多时间来研究。另外,抓取网页的代码部署在SAE上,所以不明白该如何将scrapy框架嵌入到SAE。BeautifulSoup初识

所幸要取得网页内容不是很复杂,就直接用urllib2来获取内容。

但是取出的内容要如何处理,如何才能找到所需要的内容。从网上搜索发现可以用HtmlParser或者BeautifulSoup来获取,经过尝试之后果断放弃HtmlParser。

BeautifulSoup:

   python中的Beautiful是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree)。

  下载地址:http://www.crummy.com/software/BeautifulSoup/

  下载完成之后,提取文件中的bs4文件夹。拷贝到所需的文件夹路径下。

  具体使用文档:http://www.crummy.com/software/BeautifulSoup/bs4/doc/

  现在来说说我的使用方法:

  假定需要解析url的代码如下:

  

import urllib2
from bs4 import BeautifulSoup


def catch_url( url ):
  content = urllib2.urlopen( url )
  soup = BeautifulSoup( content )
  return soup

  然后,使用BeautifulSoup来解析一下京东的主页:

def parse360buyContent( content ):
  beauParse = BeautifulSoup( content )

  soup = beauParse.findAll('div',{'id':'life'})
  data = []
  
  for con in soup:
    text = con.a['href']
    data.append({'text':text})
  
  
  return data

可以看到,解析出的结果是一个list,通过for来取出每一个条目。如果需要取出此条目中的<a href="www.360buy.com/products/xxxx">,只要将a做为属性来取出,而href则需要按字典

类型来取出。

  由于用到的地方就这一点,所以未作深入研究,只是做为后续一个可查询的纪录。 

  


/template/Home/DawnNew/PC/Static

立即注册风纳云账号,免费体验多款产品

立即注册