jump_p 发表于 2020-6-3 13:10:05

豆瓣“一周口碑榜”排名第一的电影

import requests
import lxml.html

myheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"}

http_response = requests.get('https://movie.douban.com', headers=myheaders)
http_response.encoding = 'utf-8'

html = lxml.html.fromstring(http_response.text)

title = html.xpath('//*[@id="billboard"]/div/table/tr/td/a')

print(title)
print(title.text_content())

print(title)返回一个数组,能解释一下print(title.text_content())的原理吗?

Twilight6 发表于 2020-6-3 13:16:01

其他语言学多了哈哈,Python 里面没有数组概念 不算 numpy 那些,返回的是个列表


title.text_content() 就是 title 的第一个内容里的 文本提取出来

jump_p 发表于 2020-6-3 13:19:27

Twilight6 发表于 2020-6-3 13:16
其他语言学多了哈哈,Python 里面没有数组概念 不算 numpy 那些,返回的是个列表




哦!那像这段代码,列表中只有一个元素,所以是title,我试了一下如果直接写title.text_content()会报错,显示列表没有text_content()这个方法,所以这个方法是某个元素的方法吗?

永恒的蓝色梦想 发表于 2020-6-3 13:21:58

jump_p 发表于 2020-6-3 13:19
哦!那像这段代码,列表中只有一个元素,所以是title,我试了一下如果直接写title.text_content()会报 ...

对的。

Twilight6 发表于 2020-6-3 13:22:30

jump_p 发表于 2020-6-3 13:19
哦!那像这段代码,列表中只有一个元素,所以是title,我试了一下如果直接写title.text_content()会报 ...

对的是title 列表里面有很多元素还有 text_content() 是对 html类型的对象用的 不是对列表的对象使用的
title 里面的元素是 html 对象 所以 text_content() 对列表才会报错,列表里面到底有几个元素你可以len一下看看,也有可能是一个元素

jump_p 发表于 2020-6-3 13:25:04

Twilight6 发表于 2020-6-3 13:22
对的是title 列表里面有很多元素还有 text_content() 是对 html类型的对象用的 不是对列表的对象使 ...

懂了!(另外这段代码就是返回一个元素,因为是爬排名第一的电影{:10_264:})
页: [1]
查看完整版本: 豆瓣“一周口碑榜”排名第一的电影