Github上有一個關於下載百度貼吧裏的美女圖片的練習題,最近正好在學爬蟲相關的知識,拿來練練手。
這是我的目標網頁。
最開始的時候我在網上找到一個類似的案例,代碼如下圖:
稍作修改,運行之後得到七十多張圖片,結果一看接近一半是用戶頭像~
方法太過簡單粗暴,決定使用美麗的湯——BeautifulSoup重寫一下(這湯真香)
觀察了一下頁面的源代碼,發現所有用戶發的圖片都是class=“BDE_Image”
的,這樣就可以區分頭像和帖子裏的圖片了,隨便寫寫的代碼:
from urllib.request import urlretrieve
from urllib.request import urlopen
from bs4 import BeautifulSoup
def get_image(url):
html = urlopen(url).read().decode('utf-8')
bsObj = BeautifulSoup(html, "lxml")
myimg = bsObj.find_all('img', class_='BDE_Image')
num = 1
for img in myimg:
link = img.get('src')
pic_name = str(num) + '.jpg'
urlretrieve(link, pic_name)
print("Success!" + pic_name)
num += 1
return None
url = 'http://tieba.baidu.com/p/2166231880'
get_image(url)
這次得到了49張圖片
代碼上傳到了我的Github
交流羣:435414286