BeautifulSoup 爬虫

一 安装BeautifulSoup

安装Python的包管理器pip 然后运行

$pip3 install beautifulsoup

在终端里导入它测试下是否安装成功

>>>from bs import BeautifulSoup

如果没有错误,说明导入成功了

简单例子 http://sc.chinaz.com/biaoqing/baozou.html 爬取图片

代码如下

from urllib.request import urlopenfrom urllib.error import HTTPError,URLErrorfrom bs4 import BeautifulSoupimport reimport warningswarnings.filterwarnings("ignore")def getTitle(url):    list =[];    try:       html=urlopen(url);    except (HTTPError,URLError) as e:        return None;    try:        bsObj = BeautifulSoup(html)        a=bsObj.findAll("img",{"src":re.compile("http:\/\/.*jpg|png|jpeg|tiff|raw|bmp|gig")});        for i in a:            if i[‘src‘]!="":               list.append(i[‘src‘]);    except AttributeError as e:        return None;

    return list;# a=getTitle(url)# print(a)

def getHread(is_urls):    list=[];    try:        html = urlopen(is_urls);    except (HTTPError, URLError) as e:        return None;    try:        bsObj = BeautifulSoup(html)        tables=bsObj.findAll("a")

        for i in tables:            if "href" in i.attrs:               list.append(i.attrs[‘href‘]);

             #print(getTitle(i.attrs[‘href‘]));        temp=set(list);        for d in temp:            print(getTitle(d));    except AttributeError as e:        return None;    #return list;is_ulrs="http://sc.chinaz.com/biaoqing/baozou.html";a=getHread(is_ulrs)print(a)##################运行结果****************************** 没有具体需求 只是简单的例子 只是处理了重复返回的图片用到set集合 运行的速度有点慢 没有时间优化 等有时间一定好好写写。

时间: 2024-12-23 21:49:42

BeautifulSoup 爬虫的相关文章

Python3.X BeautifulSoup([your markup], "lxml") markup_type=markup_type))的解决方案

1 random.seed(datetime.datetime.now()) 2 def getLinks(articleUrl): 3 html = urlopen("http://en.wikipedia.org"+articleUrl) 4 bsOdj = BeautifulSoup(html) 5 return bsOdj.find("div",{"id":"bodyContent"}).findAll("a

python爬虫爬取QQ说说并且生成词云图,回忆满满!

Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句. Python支持命令式程序设计.面向对象程序设计.函数式编程.面向切面编程.泛型编程多种编程范式.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收

python爬虫从入门到放弃(六)之 BeautifulSoup库的使用

上一篇文章的正则,其实对很多人来说用起来是不方便的,加上需要记很多规则,所以用起来不是特别熟练,而这节我们提到的beautifulsoup就是一个非常强大的工具,爬虫利器. beautifulSoup “美味的汤,绿色的浓汤” 一个灵活又方便的网页解析库,处理高效,支持多种解析器.利用它就不用编写正则表达式也能方便的实现网页信息的抓取 快速使用 通过下面的一个例子,对bs4有个简单的了解,以及看一下它的强大之处: from bs4 import BeautifulSoup html = '''

python爬虫:使用urllib.request和BeautifulSoup抓取新浪新闻标题、链接和主要内容

案例一 抓取对象: 新浪国内新闻(http://news.sina.com.cn/china/),该列表中的标题名称.时间.链接. 完整代码: from bs4 import BeautifulSoup import requests url = 'http://news.sina.com.cn/china/' web_data = requests.get(url) web_data.encoding = 'utf-8' soup = BeautifulSoup(web_data.text,'

Python爬虫:用BeautifulSoup进行NBA数据爬取

爬虫主要就是要过滤掉网页中无用的信息,抓取网页中有用的信息 一般的爬虫架构为: 在python爬虫之前先要对网页的结构知识有一定的了解,如网页的标签,网页的语言等知识,推荐去W3School: W3school链接进行了解 在进行爬虫之前还要有一些工具: 1.首先Python 的开发环境:这里我选择了python2.7,开发的IDE为了安装调试方便选择了用VS2013上的python插件,在VS上进行开发(python程序的调试与c的调试差不多较为熟悉): 2.网页源代码的查看工具:虽然每一个浏

使用BeautifulSoup快速写爬虫

BeautifulSoup简称bs,是一个用来分析提取网页有用信息的工具,我个人认为正则表达式对于网页分析提取信息无所不能,但如果每个爬虫都用正则来写太费力,bs相对来说比正则方便很多,对于编写规范的网页来说bs确实很好用,对有一些编写不规范的网页,bs就很容易出错,而正则对于编写不规范的网站就显得强大很多,正则和bs各有利弊,不过大多情况下,网站的编写都还是很规范的,所以还是用bs比较多. 关于网页分析的工具不止bs,Scrapy框架用的是xpath,其实完全可以用bs来替代xpath,这类工

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

[python爬虫] BeautifulSoup和Selenium对比爬取豆瓣Top250电影信息

这篇文章主要对比BeautifulSoup和Selenium爬取豆瓣Top250电影信息,两种方法从本质上都是一样的,都是通过分析网页的DOM树结构进行元素定位,再定向爬取具体的电影信息,通过代码的对比,你可以进一步加深Python爬虫的印象.同时,文章给出了我以前关于爬虫的基础知识介绍,方便新手进行学习.        总之,希望文章对你有所帮助,如果存在不错或者错误的地方,还请海涵~ 一. DOM树结构分析 豆瓣Top250电影网址:https://movie.douban.com/top2

python爬虫实例(urllib&BeautifulSoup)

python 2.7.6 urllib:发送报文并得到response BeautifulSoup:解析报文的body(html) #encoding=UTF-8 from bs4 import BeautifulSoup from urllib import urlopen import urllib list_no_results=[]#没查到的银行卡的list list_yes_results=[]#已查到的银行卡的list #解析报文,以字典存储 def parseData(htmls,