码迷,mamicode.com
首页 > Web开发 > 详细

利用Requests爬取图片与网页数据

时间:2016-05-12 20:38:39      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

一、利用Requests爬取慕课网课程图片

网址:http://www.imooc.com/course/list?page=1 

步骤分析

       1、导入模块

       2、抓取源代码   两种方法

                 利用requests.get

                 打开一个txt文件,利用Ctrl+F查找要匹配的部分源代码,粘贴到txt文件中,在下步匹配中用到

       3、根据源代码利用正则表达式对图片进行匹配

       4、for循环下载图片,并把图片保存到本地文件夹下

代码如下:

#step1  导入模块
import re
import requests

#读取源代码文件
f = open(‘tupian5-4-2.txt‘,‘r‘)   ## 把网址源代码中要匹配的部分代码粘贴到这里
html = f.read()
f.close()

#匹配图片网址
pic_url = re.findall(‘ src="(.*?)"‘,html,re.S)     #  txt中的审查元素匹配
i = 0

for each in pic_url:
    print ‘now downloading:‘+each
    pic = requests.get(each)
    fp = open(‘pic\\+str(i)+‘.jpg‘,‘wb‘)   # 图片保存的位置  命名 wb
    fp.write(pic.content)
    fp.close()
    i += 1
print "well done!"
如下:

技术分享
这里我只抓取了第一页的图片,可以添加页数,抓取不同页课程图片

二、Requests 爬取网页数据
   爬取廖雪峰网站数据   网址:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000

步骤分析
    1、导入模块
    2、抓取源代码
    3、正则表达式匹配要爬取的数据信息
    4、利用for循环把爬取的数据保存到一个txt文档中

代码如下
import re
import requests
reload(sys)
sys.setdefaultencoding("gb18030")        ## 编码 强制转换类型   可中文
type = sys.getfilesystemencoding()

# 抓取源代码
url = ‘http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000‘
header = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36‘}

htmll = requests.get(url,headers=header)
html=htmll.text
#html.encoding = ‘utf-8‘
#print html

# 如何匹配

# 匹配目录页面网址,依次爬取不同目录网址的数据
技术分享

pattern = re.findall(‘<li id=.*?>.*?<a href="(.*?)">.*?</a>‘,html,re.S)  

#content = re.findall(‘<p>(.*?)</p>‘,html,re.S)     #  正则表达式

for each in pattern:
    page =‘http://www.liaoxuefeng.com‘+each
    htmll2 = requests.get(page,headers=header)
    html2=htmll2.text
    print page
    pattern2 = re.findall(‘<p>(.*?)</p>‘,html2,re.S)
    for each2 in pattern2:
        print each2
        f = open(‘liaoxuefeng3.txt‘,‘a+‘)
        f.write(each2)
        f.close()
print 爬取完毕
结果如下:
技术分享

这里匹配利用了正则表达式,爬取的数据不是很整齐,还可以利用BeautifulSoup可以解决这个问题







            

       

利用Requests爬取图片与网页数据

标签:

原文地址:http://blog.csdn.net/jly58fgjk/article/details/51355289

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!