我的结果:
Talor Swift我的代码:
from bs4 import BeautifulSoup
import requests, urllib.request
import time, os
# 收纳图片地址
img_url = []
# 目标网页,20页
urls = ['http://weheartit.com/inspirations/taylorswift?page={}&before=253730307'.format(str(i)) for i in range(1, 21)]
#解析网页,获取图片地址,返回列表
def get_img_urls(url):
time.sleep(5)
web_data = requests.get(url)
soup = BeautifulSoup(web_data.text, 'lxml')
imgs = soup.select('div[id="main-container"] > div:nth-of-type(2) > div > div > div > div > a > img')
for img in imgs:
img = img.get('src')
img_url.append(img)
return img_url
# 下载图片
def img_retrieve(item):
# 新建路径
if not os.path.exists(r'C:/Users/Administrator/desktop/Taylor_Switf/'):
os.mkdir(r'C:/Users/Administrator/desktop/Taylor_Switf/')
item_path = 'C:/Users/Administrator/desktop/Taylor_Switf/'
# 下载图片,用序号命名
urllib.request.urlretrieve(item, item_path + item[-14:].replace('superthumb',str(img_url.index(item))))
#起点
for url in urls:
get_img_urls(url)
for item in img_url:
img_retrieve(item)
我的感想:
- 用时两个小时十五分钟
- 关于网站(weheartit.com/)我想说:
-
群里有人说需要代理才能爬,但是我没用,而且之前很多人反映网站速度慢,但我今天却很快。不知道发生了什么,也许改版了?
-
当我在检查网页结构的时候,我发现图片都是webp格式的:
- webp格式
-
但是我爬取出来的数据却是全部都是superthumb.jpg:
- superthumb.jpg
-
不知道发生了什么。
- 关于
代码
我想说:
- 我的select语句用很长,别人的很短,如:'img[class="entry_thumbnail"]
- 关于文件夹路径,使用 import os。
检查路径存在:os.path.exists
建立路径:os.mkdr/os.mkdirs
- 其实每次爬虫运行的过程都感觉挺惊险的。希望能快快进步。
网友评论