我遇到了美味的汤。从今天开始了解它,但无法找到解决问题的方法。
我想每次只获得1个链接,以及h1和p中写的内容。
article_name_list = soup.find(class_='turbolink_scroller')
#find all links in the div
article_name_list_items = article_name_list.find_all('article')
#loop to print all out
for article_name in article_name_list_items:
names = article_name.find('h1')
color = article_name.find('p')
print(names)
print(color)
输出是:
<h1><a class="name-link" href="/shop/jackets/gw1diqgyr/km21a8hnc">Gonz Logo Coaches Jacket </a></h1>
<p><a class="name-link" href="/shop/jackets/gw1diqgyr/km21a8hnc">Red</a></p>
我想进入输出: HREF =&#34; blablabla&#34; Gonz Logo Coatches Jacket Red
并且每次(如果可能的话)将它放在变量中,例如link = href&#34; blablabla&#34;和名字=&#34; gonz标志......&#34;或3个变量,另一个变换颜色。
编辑在这里是页面的样子:
<div class="turbolink_scroller" id="container" style="opacity: 1;">
<article>
<div class="inner-article">
<a style="height:150px;" href="/shop/jackets/h21snm5ld/jick90fel">
<img width="150" height="150" src="//assets.supremenewyork.com/146917/vi/MCHFhUqvN0w.jpg" alt="Mchfhuqvn0w">
<div class="sold_out_tag" style="">sold out</div>
</a>
<h1><a class="name-link" href="/shop/jackets/h21snm5ld/jick90fel">NY Tapestry Denim Chore Coat</a></h1>
<p><a class="name-link" href="/shop/jackets/h21snm5ld/jick90fel">Maroon</a></p>
</div>
</article>
<article></article>
<article></article>
<article></article>
</div>
编辑2:问题已解决(谢谢)
这是其他人的解决方案:
article_name_list = soup.find(class_='turbolink_scroller')
#find all links in the div
article_name_list_items = article_name_list.find_all('article')
#loop to print all out
for article_name in article_name_list_items:
link = article_name.find('h1').find('a').get('href')
names = article_name.find('h1').find('a').get_text()
color = article_name.find('p').find('a').get_text()
print(names)
print(color)
print(link)
谢谢大家的回答。
答案 0 :(得分:1)
我假设您希望将每个列表放入单独的列表中。
name_list = []
link_list = []
color_list = []
for article_name in article_name_list_items:
names = article_name.find('h1').find('a', class_ = 'name-link').get_text()
links = article_name.find('p').find('a', class_ = 'name-link').get('href')
colors = article_name.find('p').find('a', class_ = 'name-link').get_text()
name_list.append(names)
link_list.append(links)
color_list.append(colors)
不完全确定article_name_list_items
看起来是什么,但names
会为您提供<h1>
元素的文字,links
会获得href
的{{1}} <p>
元素,colors
将为您提供<p>
元素的文字。
您还可以选择将所有元素包含在列表列表中(初始化新列表list_of_all
并将第3个列表追加替换为第二行中的单个追加):
list_of_all = []
list_of_all.append([names, links, colors])
答案 1 :(得分:0)
我相信你很亲密。但是,您应该告诉我们有关页面结构的更多信息。是否所有article
结构都在同一个h1&gt; a,p&gt;结构中?
假设这个结构,则以下内容应该有效:
names = article_name.find('h1').find('a').get('href')
color = article_name.find('p').find('a').get_text()