我需要在scrapy框架下使用蜘蛛爬取异步加载的网页内容,我是在爬取主页面后,通过组合得到了异步加载内容的js文件url,准备进行爬取,但是我目前在使用lxml库对内容进行解析之后碰壁了,代码如下
url = "http://www.xxxxx.com/xxx/index.html"
name = "xyz"
str = url.rpartition("/")
next_url = str[0] + "/" + name + ".js"
html = requests.get(next_url).content.decode('gb2312')
ac = html[21:-3] #去掉返回的内容的头尾非html语言符号和字母
html = etree.HTML(ac)
maparea = html.xpath('//map/area')
然后问题就在于这样子得到的maparea是element对象的集合,是个列表,而爬虫内正常的步骤中下一步是在后面加上@coords并extract()输出,然后这个就会出问题,因为list没有extract()属性
我一开始打算采用toString()的方法,但是就我找到的例子这个方法是在xpath之前就把html转换成字符串,我就用不了xpath路径找内容的;然后我打算直接更改xpath路径,在后面加上@coords直接把内容找出来,虽然输出是正确的内容,但是爬虫后续操作读取出来直接是空列表
我直接麻爪了,刚毕业入职,公司安排给我的第一个重要的任务,弄了两天没弄出来太难过了,时间都有点紧张,求助CSDN大佬们,谁能指点我一下我该怎么做