鱼C论坛

 找回密码
 立即注册
查看: 1930|回复: 12

[已解决]关于爬取豆瓣电影标题的一个细节问题,求助!

[复制链接]
发表于 2020-7-14 16:17:08 | 显示全部楼层 |阅读模式

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

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

x
爬取资料代码如下:
    messages = []
    targets = soup.find_all('div',class_='bd')
    for each in targets:
        try:
            messages.append(each.p.text.split('\n')[1].strip()+each.p.text.split('\n')[2].strip())
        except:
            continue

请问messages.append(each.p.text.split('\n')[1].strip()+each.p.text.split('\n')[2].strip())这句,是怎么分割字符串的?按照这个意思,它是将电影资料字符串以\n为分隔符分为三个部分,取后两个部分,但是网页源码那里我看不懂,不知道怎么分成三部分的。(小白还不能发图片。。)

最佳答案
2020-7-14 16:59:24
xiongbilei 发表于 2020-7-14 16:57
如果是这样,那[2]不应该是(一行空格)吗?第三项是(一行空格)啊。。。我晕了



我觉得你是没理解列表索引,看图,对应的位置参数标出来了:

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

使用道具 举报

发表于 2020-7-14 16:22:05 | 显示全部楼层
本帖最后由 Twilight6 于 2020-7-14 16:23 编辑


each.p.text.split('\n')[1].strip()+each.p.text.split('\n')[2].strip():

each.p.text.split('\n') 先分割换行符, [1] 取出分割后的第二个元素, .strip() 去除这个元素前后空格

第二个同理先分割换行符, [2] 取出分割后的第三个元素, .strip() 去除这个元素前后的空格

两个都切割完毕后在进行拼接在一起,怎么分成三个部分的就是因为元素中有多个换行符,通过 split 来切割后就会自动分为多个部分呗

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

使用道具 举报

发表于 2020-7-14 16:27:53 | 显示全部楼层

你不能上传图片但是可以发网络图片,获取图片 url 就可以成功发图了

比如上传 QQ 空间 ,或者上传到图床 https://imgchr.com/


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-14 16:32:40 | 显示全部楼层
Twilight6 发表于 2020-7-14 16:22
each.p.text.split('\n')[1].strip()+each.p.text.split('\n')[2].strip():

each.p.text.split('\n')  ...

‘‘
                            导演: 陈凯歌 Kaige Chen   主演: 张国荣 Leslie Cheung / 张丰毅 Fengyi Zha...’‘
<br>
‘’
                            1993&nbsp;/&nbsp;中国大陆 中国香港&nbsp;/&nbsp;剧情 爱情 同性
                ’‘
它的源码是这种形式,请问三个部分是指哪里。。换行符能标明一下吗?谢谢大佬。。
                        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-14 16:35:05 | 显示全部楼层
Twilight6 发表于 2020-7-14 16:27
你不能上传图片但是可以发网络图片,获取图片 url 就可以成功发图了

比如上传 QQ 空间 ,或者上传到图 ...


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-14 16:37:30 | 显示全部楼层
Twilight6 发表于 2020-7-14 16:27
你不能上传图片但是可以发网络图片,获取图片 url 就可以成功发图了

比如上传 QQ 空间 ,或者上传到图 ...


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 16:39:50 | 显示全部楼层



这些都是不可见字符,在网页源码都是看不见的,PyCharm 随便拿一个标签出来调试下清清楚楚了~:

3333.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-14 16:48:42 | 显示全部楼层
Twilight6 发表于 2020-7-14 16:22
each.p.text.split('\n')[1].strip()+each.p.text.split('\n')[2].strip():

each.p.text.split('\n')  ...

我的理解是这样的:
(一行空格)\n (第一部分)  \n (一行空格) \n (第二部分)

可是这样就是四部分了。。不知道我哪里理解有问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 16:50:28 | 显示全部楼层
xiongbilei 发表于 2020-7-14 16:48
我的理解是这样的:
(一行空格)\n (第一部分)  \n (一行空格) \n (第二部分)


是四个部分啊 然后 [1] 就代表 导演的那个部分 [2] 代表年代那部分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-14 16:57:35 | 显示全部楼层
Twilight6 发表于 2020-7-14 16:50
是四个部分啊 然后 [1] 就代表 导演的那个部分 [2] 代表年代那部分

如果是这样,那[2]不应该是(一行空格)吗?第三项是(一行空格)啊。。。我晕了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 16:59:24 | 显示全部楼层    本楼为最佳答案   
xiongbilei 发表于 2020-7-14 16:57
如果是这样,那[2]不应该是(一行空格)吗?第三项是(一行空格)啊。。。我晕了



我觉得你是没理解列表索引,看图,对应的位置参数标出来了:

333.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-14 17:03:29 | 显示全部楼层
Twilight6 发表于 2020-7-14 16:59
我觉得你是没理解列表索引,看图,对应的位置参数标出来了:

哇,这个图豁然开朗了,谢谢大佬。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 17:05:43 | 显示全部楼层
xiongbilei 发表于 2020-7-14 17:03
哇,这个图豁然开朗了,谢谢大佬。。



客气~加油吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 01:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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