Scrapy crawler的响应只包含网站的一部分

Scrapy crawler的响应只包含网站的一部分,scrapy,web-crawler,scrapy-spider,Scrapy,Web Crawler,Scrapy Spider,我创建了一个爬虫程序,将所有目录存储在像美国鹰这样的网站上。但是,在响应中,只有所有可用目录的子集 我用“scrapy shell”来运行scrapy shell 然后我通过'res=response.css'FaceResults.css.sProd'选择合适的类 伦雷斯大约20岁。然而,如果我们快速浏览一下美国鹰男装/上衣/的网页,你会发现有20多种商品可供选择 我试图更改css选择器,但没有成功。。请帮忙,谢谢 如果将浏览器开发工具中的HTML代码与原始源代码进行比较,您会发现浏览器HTM

我创建了一个爬虫程序,将所有目录存储在像美国鹰这样的网站上。但是,在响应中,只有所有可用目录的子集

我用“scrapy shell”来运行scrapy shell

然后我通过'res=response.css'FaceResults.css.sProd'选择合适的类

伦雷斯大约20岁。然而,如果我们快速浏览一下美国鹰男装/上衣/的网页,你会发现有20多种商品可供选择


我试图更改css选择器,但没有成功。。请帮忙,谢谢

如果将浏览器开发工具中的HTML代码与原始源代码进行比较,您会发现浏览器HTML控制台显示所有项目,而原始代码仅显示其中20个项目

所有目录信息都存储在一个名为category_json的JS变量中,该变量存在于正文中,无需与页面交互

我建议您检索该变量并从中提取信息,我使用scrapy shell对代码进行了一些测试:

In [1]: import re, json

In [2]: data_json = re.search('category_json = ({.*})', response.body).group(1)

In [3]: data = json.loads(data_json)

In [4]: products = data['availablePrds'].keys()

In [5]: data['availablePrds'][products[0]]
Out[5]:
{u'availableColorIds': [],
 u'brandName': u'AEO',
 u'bundleCatId': u'',
 u'classId': u'0164',
 u'colorImageSelectionData': {u'100': {u'colorNam
   u'colorPrdId': u'0164_3898_100',
   u'factoryExclusive': False,
   u'greatGift': False,
   u'imgViews': [u'_f', u'_b'],
   u'isAvailable': True,
   u'newArrival': True,
   u'webExclusive': False}},
 u'contextRoot': u'web',
 u'defaultURL': u'/browse/product_details.jsp',
 u'firstAvailableColorPrdId': u'0164_3898_100',
 u'hasBundle': False,
 u'isAvailable': False,
 u'isClearance': False,
 u'isGWP': False,
 u'isHazMat': False,
 u'listPrice': u'\u20ac22.36 EUR',
 u'marketingMessage': u'Buy One Get One 50% Off',
 u'prdId': u'0164_3898',
 u'prdName': u'AEO NYC Graphic T-Shirt',
 u'rating': u'',
 u'salePrice': u'\u20ac22.36 EUR',
 u'styleId': u'3898'}

如果循环使用变量,则可以检索每个产品所需的所有信息并生成项目。

如果将浏览器开发工具中的HTML代码与原始源代码进行比较,则可以看到浏览器HTML控制台显示所有项目,而原始代码仅显示其中20个项目

所有目录信息都存储在一个名为category_json的JS变量中,该变量存在于正文中,无需与页面交互

我建议您检索该变量并从中提取信息,我使用scrapy shell对代码进行了一些测试:

In [1]: import re, json

In [2]: data_json = re.search('category_json = ({.*})', response.body).group(1)

In [3]: data = json.loads(data_json)

In [4]: products = data['availablePrds'].keys()

In [5]: data['availablePrds'][products[0]]
Out[5]:
{u'availableColorIds': [],
 u'brandName': u'AEO',
 u'bundleCatId': u'',
 u'classId': u'0164',
 u'colorImageSelectionData': {u'100': {u'colorNam
   u'colorPrdId': u'0164_3898_100',
   u'factoryExclusive': False,
   u'greatGift': False,
   u'imgViews': [u'_f', u'_b'],
   u'isAvailable': True,
   u'newArrival': True,
   u'webExclusive': False}},
 u'contextRoot': u'web',
 u'defaultURL': u'/browse/product_details.jsp',
 u'firstAvailableColorPrdId': u'0164_3898_100',
 u'hasBundle': False,
 u'isAvailable': False,
 u'isClearance': False,
 u'isGWP': False,
 u'isHazMat': False,
 u'listPrice': u'\u20ac22.36 EUR',
 u'marketingMessage': u'Buy One Get One 50% Off',
 u'prdId': u'0164_3898',
 u'prdName': u'AEO NYC Graphic T-Shirt',
 u'rating': u'',
 u'salePrice': u'\u20ac22.36 EUR',
 u'styleId': u'3898'}

如果在变量上循环,则可以检索每个产品所需的所有信息并生成项目。

。我会努力的!好主意。我会努力的!