python批量爬取网页内容,python批量爬取网页数据

  python批量爬取网页内容,python批量爬取网页数据

  其实和抓取普通数据一样。但是,如果我们直接抓取数据,就会直接返回。抓取图像需要处理成二进制数据,保存为图像格式的数据文本(。jpg,png等。).

  现在贴一个URL=https://img . ivsky . com/img/tu pian/t/2010 08/05/bianxingjing-001 . jpg。

  请复制上面的url并直接在浏览器中打开它。您将看到以下内容:

  这是通过网页访问的这个网站的图片,所以我们可以直接用requests模块来请求这个图片,然后这个网站会把这个图片的数据返回给我们,然后我们就可以把数据写入本地的文件,这个比较简单。

  import requests headers={ user-agent : Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70 . 0 . 3538 . 25 Safari/537.36 Core/1 . 70 . 3861 . 400 QQ browser/10 . 7 . 4313 . 400 } URL= https://img . ivsky . com/img/tu pian/t/201008/05/Bixingjing-001 . jpg re=1status _ code) #检查请求状态,返回200表示正常path=test.jpg#文件存储地址with open(path,wb )为f:#本地写图片数据,Wb表示二进制存储for chunk in re。f .写(chunk)然后得到test.jpg的图片,如下

  点击查看如下:

  只是下载成功了。很简单。

  现在分析批量下载。我们把上面的代码打包成一个函数,所以对于每一个图像,都需要一个单独的名称和一个单独的图像文件,所以有下面的代码:

  导入请求def get_pictures(url,path):headers={ user-agent : Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70 . 0 . 3538 . 25 Safari/537.36 Core/1 . 70 . 3861 . 400 QQ browser/10 . 7 . 4313 . 400 } re=requests . get(URL,Headers=headers) print (re。status _ code) #检查请求状态,用open(path, wb )返回200表示正常为f:#将图片数据写入本地,Wb二进制存储为re.iter _ content中的chunk(chunk _ size=128):f . Write(chunk)URL= 3359img.ivsky.com/img/tupian/t/201008/05/anxingjiangang-001 . jpg path= test . jpg #文件存储地址get_pictures(url,path)现在,要批量下载图片,也就是批量获取图片的URL,那么我们有

  所以我们需要分别获取这个页面中显示的所有图片的URL,所以我们再次使用requests模块返回这个页面的当前内容,如下所示:

  import requests headers={ user-agent : Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70 . 3538 . 25 Safari/537.36 Core/1 . 70 . 3861 . 400 QQ browser/10 . 7 . 4313 . 400 } URL= https://www . ivsky . com/tu pian/bianxingjingan _ v 622/Re=requests . get(URL,headers=headers) print (re .text)会返回当前页面的页面结构内容,所以我们找到与图片相关的注释,也就是,jpg或者。巴布亚新几内亚,如下:

  带圈的* *//img . ivsky . com/img/tu pian/t/2010 08/05/bianxingjing-017 . jpg * *是我们的图片网址,但是需要在前面加https:所以完整的网址是3359img.ivsky.com/img/tupian.

  现在我们知道了这个结构,我们应该提取它并写出一个简单的解析公式:

  导入请求头={ user-agent : Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70。0 .3538 .25 Safari/537.36 Core/1。70 .3861 .400 QQ浏览器/10。7 .4313 .400 } URL= https://www。伊夫斯基。com/tu pian/bianxingjiangan _ v 622/ re=requests。get(URL,headers=headers)def get _ pictures _ URL储存URL while in:if text[I:I m]==ST:URL= for j in range(I m,n):if text[j]== :I=j个URL。append(URL)break URL=text[j]I=1 return URLs URLs=get _ pictures _ URLs(re。文本)用于URL中的URL:打印(URL)打印结果如下:

  得到了url,现在就直接放入一开始的获取_图片函数中,爬取图片辣。

  导入请求def get_pictures(url,path):headers={ user-agent : Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70。0 .3538 .25 Safari/537.36 Core/1。70 .3861 .400 QQ浏览器/10。7 .4313 .400 } re=请求。get(URL,headers=headers)print(re。状态代码)#查看请求状态,返回200说明正常用打开(路径, wb )作为女:#把图片数据写入本地,wb表示二进制储存对于环中的块。ITER _ content(chunk _ size=128):f . write(chunk)def get _ pictures _ URLs(text):ST= img src= m=len(ST)I=0n=len(text)URLs=[]#储存URL while in:if text[I:I m]==ST:URL= for j in range(I m,n):if text[j]== :I=j个URL。append(URL)break URL=text[j]I=1 return URLs headers={ user-agent : Mozilla/5.0(Windows NT 10.0;WOW64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/70。0 .3538 .25 Safari/537.36 Core/1。70 .3861 .400 QQ浏览器/10。7 .4313 .400 } URL= https://www。伊夫斯基。com/tu pian/bianxingjiangan _ v 622/ re=requests。get(URL,headers=headers)URL=get _ pictures获取当前页面所有图片的范围内我的URL(len(URL)):#批量爬取图片url=https: urls[i] path=变形金刚str(I)’. jpg 获取图片(网址,路径)结果如下:

  然后就完成辣,这里只是简单介绍下批量爬取图片的过程,具体的网站需要具体分析,所以本文尽可能详细的展示了批量爬取图片的过程分析,希望对你的学习有所帮助,如有问题请及时指出,谢谢~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: