突然某一天想爬一下頁面圖片,然後就開始了python爬蟲的過程
然後打開了百度貼吧的某個頁面 http://tieba.baidu.com/p/2460150866 開始咯
一、首先要請求到這個頁面 那麼需要引用python的urllib.request 模塊
在請求中增加表頭是有些網站對爬蟲的訪問一律拒絕 所以增加表頭是為了模仿瀏覽器訪問此網站
https://docs.python.org/3/library/urllib.request.html

import urllib.request as urlre
def open_url(url):
req = urlre.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36')
page = urlre.urlopen(req)
html = page.read().decode('utf-8')
print(type(html))
return html
if __name__ == "__main__":
url="http://tieba.baidu.com/p/2460150866“
open_url(url)
二、那麼我們要找到這些照片在什麼元素裡邊 有什麼規則呢 如下圖
都在<img 標籤裡邊 然後class 都相同 都是.jpg的後綴 這個時候要引用正則模塊

試試看正則是否正確
import re
def get_img(html):
p = r'src="(.+?\.jpg)" pic_ex'
imgsa = re.compile(p)
imglist = re.findall(imgsa,html)
for each in imglist:
print(each)
return imglist
如下圖 正則的匹配是OK的 那麼這個時候如果將圖片保存到本地呢

將for循環改成如下 需要用到urlretrieve模塊

保存為%s.jpg的文件到本地
x = 0
for each in imglist:
urlre.urlretrieve(each,'%s.jpg' % x)
x += 1
return imglist
大功搞成

本文介绍如何使用Python爬虫抓取百度贴吧页面上的图片,从请求网页到解析图片链接,并保存到本地的全过程。通过urllib.request模块发送请求,设置User-Agent以模拟浏览器访问,利用正则表达式提取图片URL,最后使用urlretrieve下载图片。
76万+

被折叠的 条评论
为什么被折叠?



