0

我正在使用 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()

soup = BeautifulSoup(ProductPage)

ProductNames = soup.find_all('h1')

print ProductNames
4

2 回答 2

2

我使用请求(http://docs.python-requests.org/en/latest/)得到这个工作

from bs4 import BeautifulSoup
import requests

content = requests.get("TOPShop_URL").content
soup = BeautifulSoup(content)
product_names = soup.findAll("h1")
print product_names
于 2013-02-14T23:45:45.740 回答
0

您的代码是正确的,但问题是包含产品名称的 div 是通过 JavaScript 动态生成的。为了能够成功解析此元素,您应该介意使用Selenium或类似工具,这将允许您在所有 dom 完全加载后解析网页。

于 2013-02-15T00:01:00.230 回答