鱼C论坛

 找回密码
 立即注册
查看: 2060|回复: 18

[已解决]请教下爬虫问题

[复制链接]
发表于 2019-1-20 19:54:05 | 显示全部楼层 |阅读模式
10鱼币
比如我要抓取的这个图集下面的每个图片。为什么只有第一页的正常取到,后面的都取不到,在网页源码里面也没有看到值
第一项对的,后面都是错的
https://i.meizitu.net/2019/01/01e01.jpg
https://i.meizitu.net/2013/08/rosimm-596-024.jpg
https://i.meizitu.net/2013/06/bda3bfadgw1e3eifcebsgj.jpg
https://i.meizitu.net/2016/03/03c04.jpg
https://i.meizitu.net/2013/06/1-10.jpg
https://i.meizitu.net/2016/01/06k06.jpg


  1. import requests,bs4,os
  2. from fake_useragent import UserAgent
  3. ua = UserAgent()
  4. url = "https://www.mzitu.com/166558"
  5. headers = {
  6.     'User-Agent': ua.random,
  7. }
  8. page_data = requests.get(url, headers=headers)
  9. soup_data = bs4.BeautifulSoup(page_data.text, 'html.parser')
  10. img_link = soup_data.find_all("span")
  11. Number_of_pages = []
  12. atls_jpg_uri = []
  13. for i in img_link:
  14.     #获取到图集张数
  15.     try:
  16.         ss = int(i.text)
  17.         Number_of_pages.append(ss)
  18.     except:
  19.         pass
  20. print(max(Number_of_pages))
  21. for each in range(1,max(Number_of_pages)+1):
  22.         url = url+"/"+str(each)
  23.         page_data = requests.get(url, headers=headers)
  24.         soup_data = bs4.BeautifulSoup(page_data.text, 'html.parser')
  25.         img_ink = soup_data.find_all("div",class_="main-image")
  26.         for i in img_ink:
  27.             print(i.p.a.img["src"])
复制代码
最佳答案
1970-1-1 08:00:00
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-20 19:59:48 | 显示全部楼层
上面的链接打不开呢。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-20 20:10:35 | 显示全部楼层
本帖最后由 Stubborn 于 2019-1-20 20:17 编辑
罗同学 发表于 2019-1-20 19:59
上面的链接打不开呢。。。


第一个可以https://i.meizitu.net/2019/01/01e01.jpg,后面都被拒绝,可以打开主链接,https://www.mzitu.com/166558

@塔利班 班利塔
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-20 20:52:10 | 显示全部楼层
iwanna 发表于 2019-1-20 20:47
你志向天天爬黄网吗

兴趣,不是性趣,主要是没有完成,很纠结,再说真要去小网站,直接去在线的,还带小视频呢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-20 21:11:25 | 显示全部楼层
题主能不能换个头像,我都不敢打开你的帖子。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-20 21:15:24 | 显示全部楼层
新手·ing 发表于 2019-1-20 21:11
题主能不能换个头像,我都不敢打开你的帖子。。。

emmm  不要想那么多,看帖子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-20 21:24:55 | 显示全部楼层
iwanna 发表于 2019-1-20 21:19
应该是缓存策略的问题
在headers里面加上max-age:0试试这个键值对试试
  1. page_data = requests.get(url, headers=headers)
复制代码

我这样添加灭有问题把,上面这行会报错
  1. headers = {
  2.     'User-Agent': ua.random,"max-age":0

  3. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-20 21:33:21 | 显示全部楼层
iwanna 发表于 2019-1-20 21:30
报什么错你倒是说啊
  1. requests.exceptions.InvalidHeader: Value for header {max-age: 0} must be of type str or bytes, not <class 'int'>
复制代码

  1. C:\Users\Administrator\AppData\Local\Programs\Python\Python37\python.exe C:/Users/Administrator/Desktop/题目测.py
  2. Traceback (most recent call last):
  3.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\utils.py", line 941, in check_header_validity
  4.     if not pat.match(value):
  5. TypeError: expected string or bytes-like object

  6. During handling of the above exception, another exception occurred:

  7. Traceback (most recent call last):
  8.   File "C:/Users/Administrator/Desktop/题目测.py", line 9, in <module>
  9.     page_data = requests.get(url, headers=headers)
  10.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\api.py", line 75, in get
  11.     return request('get', url, params=params, **kwargs)
  12.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\api.py", line 60, in request
  13.     return session.request(method=method, url=url, **kwargs)
  14.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 519, in request
  15.     prep = self.prepare_request(req)
  16.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\sessions.py", line 462, in prepare_request
  17.     hooks=merge_hooks(request.hooks, self.hooks),
  18.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\models.py", line 314, in prepare
  19.     self.prepare_headers(headers)
  20.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\models.py", line 448, in prepare_headers
  21.     check_header_validity(header)
  22.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\requests\utils.py", line 945, in check_header_validity
  23.     "bytes, not %s" % (name, value, type(value)))
  24. requests.exceptions.InvalidHeader: Value for header {max-age: 0} must be of type str or bytes, not <class 'int'>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-20 22:03:41 | 显示全部楼层
本帖最后由 Stubborn 于 2019-1-20 22:29 编辑


还是一样的,我好伤心,我改在修炼几个月,会多线程,图片全部扒下来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-20 22:28:26 | 显示全部楼层
iwanna 发表于 2019-1-20 22:27
看错了,是403错误,这个我也不会.要懂后端语言的.爬虫需要的知识比较杂

3Q
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-20 22:29:34 | 显示全部楼层
iwanna 发表于 2019-1-20 22:28
等高人解释怎么绕过去了

待我在修炼修炼,会多线程,图片全部扒下来,居然欺负我。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-1-20 22:51:34 | 显示全部楼层
iwanna 发表于 2019-1-20 22:45
大哥,你别标已解决啊,这样就没有进来看了啊.就不能解决了啊

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 15:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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