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 @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 我那个写的有问题吗?
|