xiongbilei 发表于 2020-7-14 16:17:08

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

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

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

Twilight6 发表于 2020-7-14 16:22:05

本帖最后由 Twilight6 于 2020-7-14 16:23 编辑


each.p.text.split('\n').strip()+each.p.text.split('\n').strip():

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

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

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

Twilight6 发表于 2020-7-14 16:27:53


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

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

https://xxx.ilovefishc.com/forum/202005/24/124933bcrv80s06cr7vcax.png

xiongbilei 发表于 2020-7-14 16:32:40

Twilight6 发表于 2020-7-14 16:22
each.p.text.split('\n').strip()+each.p.text.split('\n').strip():

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

‘‘
                            导演: 陈凯歌 Kaige Chen   主演: 张国荣 Leslie Cheung / 张丰毅 Fengyi Zha...’‘
<br>
‘’
                            1993&nbsp;/&nbsp;中国大陆 中国香港&nbsp;/&nbsp;剧情 爱情 同性
                ’‘
它的源码是这种形式,请问三个部分是指哪里。。换行符能标明一下吗?谢谢大佬。。
                        

xiongbilei 发表于 2020-7-14 16:35:05

Twilight6 发表于 2020-7-14 16:27
你不能上传图片但是可以发网络图片,获取图片 url 就可以成功发图了

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

https://imgchr.com/i/UUN4tP

xiongbilei 发表于 2020-7-14 16:37:30

Twilight6 发表于 2020-7-14 16:27
你不能上传图片但是可以发网络图片,获取图片 url 就可以成功发图了

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

https://s1.ax1x.com/2020/07/14/UUN4tP.png

Twilight6 发表于 2020-7-14 16:39:50

xiongbilei 发表于 2020-7-14 16:37



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

xiongbilei 发表于 2020-7-14 16:48:42

Twilight6 发表于 2020-7-14 16:22
each.p.text.split('\n').strip()+each.p.text.split('\n').strip():

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

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

可是这样就是四部分了。。不知道我哪里理解有问题?

Twilight6 发表于 2020-7-14 16:50:28

xiongbilei 发表于 2020-7-14 16:48
我的理解是这样的:
(一行空格)\n (第一部分)\n (一行空格) \n (第二部分)




是四个部分啊 然后 就代表 导演的那个部分 代表年代那部分

xiongbilei 发表于 2020-7-14 16:57:35

Twilight6 发表于 2020-7-14 16:50
是四个部分啊 然后 就代表 导演的那个部分 代表年代那部分

如果是这样,那不应该是(一行空格)吗?第三项是(一行空格)啊。。。我晕了

Twilight6 发表于 2020-7-14 16:59:24

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


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

xiongbilei 发表于 2020-7-14 17:03:29

Twilight6 发表于 2020-7-14 16:59
我觉得你是没理解列表索引,看图,对应的位置参数标出来了:

哇,这个图豁然开朗了,谢谢大佬。。

Twilight6 发表于 2020-7-14 17:05:43

xiongbilei 发表于 2020-7-14 17:03
哇,这个图豁然开朗了,谢谢大佬。。


客气~加油吧
页: [1]
查看完整版本: 关于爬取豆瓣电影标题的一个细节问题,求助!