就是我之前用 find_all 定位了一个标签,然后我想再次用 find_all 查询第一次 find_all 的结果,可是却失败了
|
1
或者可不可以把 find_all 的结果全部转换成 string ,
|
|
b1eberg0nOct 25, 2016
2
a = soup.findall('a')
b = a[0].findall('b') |
|
Arthur2e5Oct 25, 2016
3
改写一下 @b1eberg0n ,来个范围攻击的……
a_b = [a.findall('b') for a in soup.findall('a')] a_b_flat = [result for a in soup.findall('a') for result in a.findall('b')] |
|
4
|
|
orange88Oct 25, 2016 via Android
6
li 是 none ,上一个没找到?
|
|
orange88Oct 25, 2016 via Android
8
li[0].findall
|
|
syahdOct 25, 2016 via Android
10
find_all 返回的结果是个 list ,要其中的结果得把它迭代一遍才行,最好再加个异常处理,防止出现你这样的情况
|
|
practicerOct 25, 2016
11
get_all_secondary_elements(bs)
try: top_elements = bs.find_all(...) for top_element in top_elements: secondary_elements = top_element.find_all(...) if secondary_elements is not None: yield secondary_elements except (AttributeError, TypeError): yield secondary_elements = list(get_all_secondary_elements) |
|
wyntergregOct 25, 2016
12
转成 tag 再 findall
|
|
b1eberg0nOct 25, 2016
13
|