实验失败,不断的查询书上的内容,看文档,自己还是没能解决。希望今晚的课上能听到解决方案。
最终成果展示
我的代码
from bs4 import BeautifulSoup
import requestsimport
timeurl = 'http://weheartit.com/inspirations/taylorswift?scrolling=true&page={}'
proxies = {"http": "222.133.31.130:2226"}
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
ipath=r'E:\study\Workspaces\pycharm\week1\homework\four\tu\pic'
def save_img(url,path,num):
time.sleep(1)
req = requests.get(url,proxies=proxies,headers=headers,allow_redirects=False)
if req.status_code != 200:
print("status error code:%d\n" % req.status_code)
return
filename = str(num)+'.jpg'
with open(filename, "wb") as f:
f.write(req.content)
def get_page(url,path,nu):
wb_data = requests.get(url,proxies=proxies,headers=headers,allow_redirects=False)
soup = BeautifulSoup(wb_data.text,'lxml')
imgs = soup.select('div.entry-preview > a.js-entry-detail-link > img.entry-thumbnail')
time.sleep(2)
i = 24*nu - 23
for img in imgs:
src = img.get('src')
time.sleep(1)
print("number of picture:%d\n" % i)
print("url:%s\n" % src)
save_img(src,path,nu)
i += 1
def get_more_page(start,end,path):
for num in range(start,end+1):
print("\npage %d\n" % num)
get_page(url.format(num),path,num)
time.sleep(2)
get_more_page(1,20,ipath)
总结
- 这次实验失败了,我没有成功抓取规定页面的图片
- 写爬虫准备工作的第一步,就是准备充足的代理池。实验中自己找到的代理都被图片网站封了
- 代码的一些功能还需要进一步优化,从结构和功能上设计
- 302,这是我最常在得到图片地址后,再次获取url后得到的http状态码。
如果这不是一个 GET 或者 HEAD 请求,那么浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。
[HTTP状态码][1]
[1]:http://baike.baidu.com/link?url=3AgtkFk_p1fSX9O065HiGrRLzZhqqWswd3AqsDCE-riu1j3EDWAC_RIYv7ofALRozK7za830nYFNXb_zv2WqSq#3_3 "Optional Title Here"