找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2451|回复: 7

[求助] print打印结果不在一行

8

主题

22

帖子

22

积分

贫民

积分
22
欢乐的舒畅 发表于 2019-5-25 16:01:29 | 显示全部楼层 |阅读模式
import requests
from lxml import etree
from pyquery import PyQuery as pq
url='https://www.zhihu.com/explore'
headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}
resp**e=requests.get(url,headers=headers)
element=etree.HTML(resp**e.text)
print(element)
items=element.xpath('//div[@class="explore-feed feed-item"]')

for item in items:
    title = item.xpath( './h2/a/text()')
    print('题目是:',title[0])
    print('\n' + '=' * 500 + '\n')


代码如上:主要问题就是这个print('题目是:',title[0])中的“题目是:”和后面的title[0]结果总不在一行显示,求助。
回复

使用道具 举报

6

主题

30

帖子

30

积分

贫民

积分
30
你的一_LtH95 发表于 2019-5-28 11:41:31 | 显示全部楼层
for item in items:
    title = item.xpath("normalize-space(./h2/a/text())")
    print('题目是:', title)
    print('\n' + '=' * 500 + '\n')
回复 支持 反对

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
chrisnotion 发表于 2019-5-28 14:21:46 | 显示全部楼层
title[0]的左侧自带了一个换行符,所以改为title[0].lstrip()就可以了
回复 支持 反对

使用道具 举报

8

主题

22

帖子

22

积分

贫民

积分
22
欢乐的舒畅  楼主| 发表于 2019-6-2 01:28:30 | 显示全部楼层
本帖最后由 欢乐的舒畅 于 2019-6-2 01:34 编辑
你的一_LtH95 发表于 2019-5-28 11:41
for item in items:
    title = item.xpath("normalize-space(./h2/a/text())")
    print('题目是:', tit ...

谢谢您,为何会出现这种情况呢?还请您指点。
回复 支持 反对

使用道具 举报

8

主题

22

帖子

22

积分

贫民

积分
22
欢乐的舒畅  楼主| 发表于 2019-6-2 01:33:59 | 显示全部楼层
chrisnotion 发表于 2019-5-28 14:21
title[0]的左侧自带了一个换行符,所以改为title[0].lstrip()就可以了

非常感谢您,确实达到了目的,为何会出现这种情况呢?还请您指点。
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
王道敏 发表于 2019-6-3 16:36:56 | 显示全部楼层
源码里a标签和文本内容之间有换行,所以lxml提取的时候把这个换行也认为是a标签下的文本内容,一起提取了出来。
如果不需要换行的话,要么通过xpath的去空格换行的normalize-space方法,要么就用python的strip方法就可以将里面的换行符给移除掉



回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
王道敏 发表于 2019-6-3 16:42:21 | 显示全部楼层
因为网页源码中a标签和文本的第一个文字中间有换行,所以xpath把这个换行符也当做文本内容给提取了出来。
如果需要剔除这个换行,可以使用xpath的normalize-space方法或者提取出文本信息以后使用python的strip方法剔除文本内容中的换行或空格
回复 支持 反对

使用道具 举报

8

主题

22

帖子

22

积分

贫民

积分
22
欢乐的舒畅  楼主| 发表于 2019-6-16 01:48:42 | 显示全部楼层
王道敏 发表于 2019-6-3 16:36
源码里a标签和文本内容之间有换行,所以lxml提取的时候把这个换行也认为是a标签下的文本内容,一起提取了出 ...

非常感谢您,谢谢。
回复 支持 反对

使用道具 举报

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

本版积分规则

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