鱼C论坛

 找回密码
 立即注册
查看: 2091|回复: 2

[作品展示] 也发一个小爬虫

[复制链接]
发表于 2018-5-18 11:48:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 轻轻4843 于 2018-5-18 13:06 编辑

闲来无事也发一个小爬虫,
之前忘记是哪个大佬发的贴了,爬取gifjia5.com
下下来用了一下发现貌似不太能用,自己也写了一个,实战效果还可以

水平较低,大佬勿喷

主要的几个功能:

1.自定义页码数量
2.未知错误跳过
3.gif和jpg按各自类型下载

缺点:
1.没有引入自动创建目录,需要自己提前建好

  1. # -*- coding: utf-8 -*-
  2. import requests
  3. from bs4 import BeautifulSoup
  4. import os, time
  5. import re

  6. headers = {
  7.     'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0'
  8. }

  9. def downpic(url):
  10.         a = 0
  11.         for url in url:
  12.                 html = requests.get(url,headers=headers)
  13.                 soup = BeautifulSoup(html.text,'lxml')
  14.                 for article in soup.find_all('article'):
  15.                         next_url= article.a.get('href')
  16.                         next_html = requests.get(next_url,headers=headers)
  17.                         next_soup = BeautifulSoup(next_html.text,'lxml')
  18.                         for pic_article in next_soup.find_all('article'):
  19.                                 try:
  20.                                         pic_url = pic_article.p.img.get('src')
  21.                                         #print(pic_url) #测试链接是否正确获取
  22.                                         pic = requests.get(pic_url,headers=headers)
  23.                                         if pic_url.endswith('.gif'):
  24.                                                 with open('E:\\pic\\gif5\\%s.gif' % a,'wb') as f:
  25.                                                         f.write(pic.content)
  26.                                                         f.close()
  27.                                                         a += 1
  28.                                                         print('No.%s' % a)
  29.                                         elif pic_url.endswith('.jpg'):
  30.                                                 with open('E:\\pic\\gif5\\%s.jpg' % a,'wb') as f:
  31.                                                         f.write(pic.content)
  32.                                                         f.close()
  33.                                                         a += 1
  34.                                                         print('No.%s' % a)
  35.                                 except:
  36.                                         print('有个错误,跳过吧')
  37.                 time.sleep(3)
  38. def appendurl(num):
  39.         url = []
  40.         for i in range(1,int(num)+1):
  41.                 if i == 1:
  42.                         url.append(r'http://www.gifjia5.com/tag/老司机')
  43.                 else:
  44.                         url.append(r'http://www.gifjia5.com/tag/老司机' + r'/page/' + ('%s' % i))
  45.         return url
  46.        

  47. page = input('输入页数:')
  48. urllist = appendurl(page)
  49. #print (urllist)
  50. downpic(urllist)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-18 12:26:21 | 显示全部楼层
gif5.net吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-18 12:46:40 | 显示全部楼层

啊、写错了,gifjia5.com
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-7 13:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表