Python 使用BeautifulSoup删除产品名称
我正在使用BeautifulSoup(BS4)构建一个刮刀工具,允许我从位于“h1”标签之间的TopShop.com产品页面中提取产品名称。我不明白为什么我写的代码不起作用Python 使用BeautifulSoup删除产品名称,python,python-2.7,beautifulsoup,Python,Python 2.7,Beautifulsoup,我正在使用BeautifulSoup(BS4)构建一个刮刀工具,允许我从位于“h1”标签之间的TopShop.com产品页面中提取产品名称。我不明白为什么我写的代码不起作用 from urllib2 import urlopen from bs4 import BeautifulSoup import re TopShop_URL = raw_input("Enter a TopShop Product URL") ProductPage = urlopen(TopShop_URL).read
from urllib2 import urlopen
from bs4 import BeautifulSoup
import re
TopShop_URL = raw_input("Enter a TopShop Product URL")
ProductPage = urlopen(TopShop_URL).read()
soup = BeautifulSoup(ProductPage)
ProductNames = soup.find_all('h1')
print ProductNames
我使用请求()
您的代码是正确的,但问题是包含产品名称的div是通过JavaScript动态生成的。
为了能够成功解析此元素,您应该考虑使用或类似的工具,这将允许您在所有dom完全加载后解析网页。一个问题是,您的代码在最后一行生成了一个语法错误:“它如何工作”?您看到的结果与您预期的结果有何不同?@bernie没有看到我这边的语法错误。期望在H1标记之间刮取数据,但上面的内容似乎没有返回任何内容。我对Python还很陌生,还没站稳脚跟。如果你没有语法错误,这意味着你没有在Python3上运行这个程序,并且这个问题的标记不恰当。你说得对,我在2.7上。抱歉。这是假设只有一个h1 tagThx可供您帮助。我尝试过这个方法,但被告知我需要一个外部解析器(lxml或html5lib)。我来试一试,看看结果如何。非常感谢你的帮助!
from bs4 import BeautifulSoup
import requests
content = requests.get("TOPShop_URL").content
soup = BeautifulSoup(content)
product_names = soup.findAll("h1")
print product_names