Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
322 views
in Technique[技术] by (71.8m points)

python - I can't get the a tag using Beautifulsoup, though I can get other tags

I'm just trying to get data from a webpage called "Elgiganten" and its url: https://www.elgiganten.se/

I want to get the products name and its url. When I tried to get the a tag so I got an empty list, but I could get the span tag though taht they were in the same div tag.

Here is the whole code:

from bs4 import BeautifulSoup
import requests


respons = requests.get("https://www.elgiganten.se")

soup = BeautifulSoup(respons.content, "lxml")

g_data = soup.find_all("div", {"class": "col-flex S-order-1"})

for item in g_data:
    print(item.contents[1].find_all("span")[0])
    print(item.contents[1].find_all("a", {"class": "product-name"}))

I hope that anyone can tell me why the a tag seems to be invisible, and can fix the issue.

question from:https://stackoverflow.com/questions/65926630/i-cant-get-the-a-tag-using-beautifulsoup-though-i-can-get-other-tags

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Go for the a-tags directly. You can extract the product name and the url both from that tag:

from bs4 import BeautifulSoup
import requests

respons = requests.get("https://www.elgiganten.se")
soup = BeautifulSoup(respons.content, "lxml")

g_data = soup.find_all("a", {"class": "product-name"}, href=True)

for item in g_data:
  print(item['title'], item['href'])

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...