python最简单的小爬虫

来源:互联网 发布:mac重复照片清理软件 编辑:程序博客网 时间:2024/06/07 14:24

网络爬虫:

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

爬虫通用流程:

    [1]发送请求
    [2]获得页面
    [3]解析页面
    [4]下载内容
    [5]存储内容

#!/usr/bin/python# coding:utf-8# 实现一个简单的爬虫,爬取百度贴吧图片import urllibimport re# 根据url获取网页html内容def getHtmlContent(url):    page = urllib.urlopen(url)    return page.read()# 从html中解析出所有jpg图片的url# 百度贴吧html中jpg图片的url格式为:<img ... src="XXX.jpg" width=...>def getJPGs(html):    # 解析jpg图片url的正则    jpgReg = re.compile(r'<img.+?src="(.+?\.jpg)" width')  # 注:这里最后加一个'width'是为了提高匹配精确度    # 解析出jpg的url列表    jpgs = re.findall(jpgReg, html)    return jpgs# 用图片url下载图片并保存成制定文件名def downloadJPG(imgUrl, fileName):    urllib.urlretrieve(imgUrl, fileName)# 批量下载图片,保存到F盘zdl文件夹def batchDownloadJPGs(imgUrls, path='F:/zdl/'):    # 用于给图片命名    count = 1    for url in imgUrls:        downloadJPG(url, ''.join([path, '{0}.jpg'.format(count)]))        print '正在下载第'+str(count)+'张'        count = count + 1# 封装:从百度贴吧网页下载图片def download(url):    html = getHtmlContent(url)    jpgs = getJPGs(html)    batchDownloadJPGs(jpgs)def main():    url = 'http://tieba.baidu.com/p/2256306796'    download(url)if __name__ == '__main__':    main()

效果展示:


requests方式

#!/usr/bin/env.python# -*- coding: utf-8 -*-import requestsfrom bs4 import BeautifulSoupr = requests.get('https://www.baidu.com/')html = r.contentsoup = BeautifulSoup(html,'html.parser')#html.parser是解析器div_people_list = soup.find('body')data = div_people_list.find_all('p',attrs={'id':'cp'})print dataprint '-'*100

1.请求www.baidu.com
2.获取内容
3.解析内容
4.查找我们要的内容



这是什么东西呢,我们把\xa92017\xa0Baidu\xa0这些东西打印出来
print u'\xa92017\xa0Baidu\xa0',u'\u4f7f\u7528\u767e\u5ea6\u524d\u5fc5\u8bfb',\    u'\u610f\u89c1\u53cd\u9988',u'\xa0\u4eacICP\u8bc1030173\u53f7\xa0 '
©2017 Baidu 使用百度前必读 意见反馈  京ICP证030173号

有没有很熟悉
看下百度首页



具体按照自己要的数据,和解析格式爬取。

原创粉丝点击