Python 使用BeautifulSoup 4从多个页面获取多个元素

Python 使用BeautifulSoup 4从多个页面获取多个元素,python,beautifulsoup,Python,Beautifulsoup,我有几页要刮,我得到了一部分html代码(从每一页),我想得到另一部分代码。因此,在: reqw = [requests.get(i) for i in ds['for_change']] soups = [BeautifulSoup(i.content, 'html.parser') for i in reqw] 我开始从每个页面收集我需要的代码部分: li = [] for i in range(len(soups)): li.append(soups[i].find_all('l

我有几页要刮,我得到了一部分html代码(从每一页),我想得到另一部分代码。因此,在:

reqw = [requests.get(i) for i in ds['for_change']]
soups = [BeautifulSoup(i.content, 'html.parser') for i in reqw]
我开始从每个页面收集我需要的代码部分:

li = []
for i in range(len(soups)):
    li.append(soups[i].find_all('li', attrs={'itemprop':'application'}))
结果是:

li[1]
>>>[<li itemprop="application" itemscope="" repeat="">
 >>><span itemprop="filingDate">2016-06-30</span>
 >>><span itemprop="countryCode">US</span>
 >>><span itemprop="applicationNumber">US15/199,528</span>
 >>><a href="/patent/US10059683B2/en"><span itemprop="documentId">patent/US10059683B2/en</span></a>
 >>><span itemprop="legalStatusCat">active</span>
 >>><span itemprop="legalStatus">Active</span>
 >>></li>, 
 >>>next element that is similar to previuos, ...]
我犯了一个错误

AttributeError: ResultSet object has no attribute 'find_all'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to call find()?
我的任务是获取下两行

<span itemprop="countryCode">US</span>
<a href="/patent/US10059683B2/en"><span itemprop="documentId">patent/US10059683B2/en</span></a>
也许我可以再次在我的列表中使用漂亮的汤,然后再提取一些来得到我需要的东西。但我相信有一些更容易做到的可能性。谢谢你的帮助。我正在使用的链接示例如下

请尝试以下方法:

for li_tag in li:
    span = li_tag.find('span', {'itemprop':'countryCode'}).text
    links = li_tag.find_all('a')
    print(span)
    [print(link.text) for link in links]
输出:

US
patent/US10059683B2/en

li[1]
li
标记的列表。你想在哪个
li
标签上查找所有
。我正在删除几个页面,所以我需要所有li的信息。实际上,每个页面都返回多个
li
元素。您有一个
li
元素列表。它正在工作!但有可能不是从li列表而是从原始代码中得到结果吗?像li,span,一次提取的链接?你能详细说明一下吗,这样我可以帮你吗?首先我在刮汤[I]。查找所有('li',attrs={'itemprop':'application')(第一个动作)。然后我将使用你有目的的代码(第二个动作)。它正在发挥作用。但是我能在一个动作中得到所有的li、链接和跨度吗?你可以简化它。只需将li中li_标签的
更改为汤[i]中li_标签的
。查找所有('li',attrs={'itemprop':'application'})
for li_tag in li:
    span = li_tag.find('span', {'itemprop':'countryCode'}).text
    links = li_tag.find_all('a')
    print(span)
    [print(link.text) for link in links]
US
patent/US10059683B2/en