为了账号安全,请及时绑定邮箱和手机立即绑定
关注
普六

简介”introduce”在不用循环语句时信息全,但写了循环语句,只有第二行信息

content=i_item.xpath(".//div[@class='bd']/p[@class='']/text()").extract()
#数据处理(多行数据)实现格式化,但未实现将所有信息整理
for i_content in content:
    content_s="".join(i_content.split())
    douban_item['introduce']=content_s
和
douban_item['introduce']==i_item.xpath(".//div[@class='bd']/p[@class='']/text()").extract_first()

循环语句使用后,只显示:
1994 / 美国 / 犯罪 剧情

而我们用XPATH时,可以看到路径信息应该是:

导演: 弗兰克·德拉邦特 Frank Darabont   主演: 蒂姆·罗宾斯 Tim Robbins /...
1994 / 美国 / 犯罪 剧情

请问各位有啥办法爬取这个路径下的所有信息

最佳回答

2018-08-21

只显示“1994 / 美国 / 犯罪 剧情”是因为在for循环里,douban_item['introduce']的值被覆盖了,如果想全部爬取的话,可以声明douban_item['introduce']为一个数组,把i_content循环append到数组里就可以了

普六 (提问者)

非常感谢!!
#1 2018-08-27

普六 (提问者)

不过我去尝试了后发现,如果只是用数组还是无法显示导演等信息,尝试把XPATH路径中的/text()去掉后就可以了,但是目前还没找到去除数据中如<pclass=""><br>等符号。
#2 2018-08-27

慕数据0594206

list.append后再''.join(list)
#3 2018-09-17

good,已尝试

2018-09-17
0

直接在循环外定义一个空字符串,然后在循环内字符串自相加就可以了

content_s=''
for i_content in content:
    content_s1=("".join(i_content.split()))
    content_s=content_s+content_s1
douban_item['introduce'] = content_s


2018-09-19
0
contents = ''
for i_content in content:
    contents += "".join(i_content.split())
douban_item['introduce'] = contents
追加字符创即可,循环外赋值
2019-01-03
0

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信