1 layorlayor 2019-01-16 10:18:13 +08:00 if len(next_page) != 0: yield xxxx ??? |
2 layorlayor 2019-01-16 10:21:33 +08:00 用 class="next"貌似要好些,因为没有下一页就没这个标签了 |
3 Ewig OP 2019-01-16 10:58:32 +08:00 @layorlayor https://www.zhipin.com/gongsi/_zzz_c101200100_iy100101_t801_s302/ 这个网站我先进入每个详情页,然后再翻页 进入详情页抓数据 |
4 Ewig OP 这个不好处理 |
5 xpresslink 2019-01-16 13:21:41 +08:00 try: 获取下一页;yeild 下一页; except: pass |
![]() | 6 largecat 2019-01-16 16:38:54 +08:00 via Android 递归下一页。 获取的数据返回在顶层打包丢给 pipeline |
7 Ewig OP @xpresslink 为啥 try |
8 kr380709959 2019-01-16 16:54:21 +08:00 我爬过拉钩的,类似也是分页的,我记得我是 page += 1, if item: break else: items.append(item) //item 是职位信息 |
![]() | 9 quere 2019-01-16 17:07:48 +08:00 scripy-redis 这个框架里面有一个自动去重的,可以用这个框架抓取 |
10 xpresslink 2019-01-16 17:15:22 +08:00 @Ewig 因为下页的 url 在最后一页肯定是获取不到或得到 None 的。yield 下一页的 Request 对象就会报错。scrapy 本身也有异常处理机制并不会影响其它 Request 对象执行,只是输出错误信息到日志里面。 直接使用捕获异常,或是先检测再使用是两种哲学。 python 和一些动态语言倾向使用第一种哲学 |
![]() | 11 houzhimeng 2019-01-16 17:23:11 +08:00 方法挺多,1.先爬列表页所有,判断有没有内容了,if not room_list :return, 2.然后解析详情页。 ls 那种方法去重也行,或者 CrawlSpider |
12 Ewig OP @houzhimeng 这个页面你多少页都有内容啊,因为都是最后一页内容 |
13 Ewig OP @xpresslink 我那个写的有问题吗? |