我正在尝试从网站上嵌入的JS下拉列表中删除市场列表:https://e27.co/startups
我使用刮y的外壳,试图从“市场”下拉菜单中刮擦市场列表,但无法这样做。
运行scrapy shell 'https://e27.co/startups'
之后,我尝试同时使用response.css()
和response.xpath()
。
对于CSS选择器:
response.css('#startups-page > div > div.search-block.box-view > div.row.mbt-s > div > div > ul > li:nth-child(3)')
对于xpath,我尝试过:
response.xpath('//*[@id="startups-page"]/div/div[1]/div[2]/div/div/ul/li[3]/a"')
两者都是通过检查下拉菜单元素获得的。
但是,将返回一个空列表。
我可以知道如何从下拉列表中删除所有不同的市场吗?谢谢。
答案 0 :(得分:1)
此数据位于对https://e27.co/startups?json
的单独小请求中。
从scrapy shell "https://e27.co/startups?json"
中,我可以得到带有此表达式的整个列表:
In [1]: response.css('select#market option::text').extract()
Out[1]:
[u'Advertising',
u'Aerospace',
u'Agency & Consulting',
u'Agritech',
u'Architecture & Construction',
...