Z-Fool 2020-07-16 20:01 采纳率: 0%
浏览 454

python中lxml解析html文档之后的element对象如何操作?

我需要在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大佬们,谁能指点我一下我该怎么做

  • 写回答

2条回答 默认 最新

  • java守门员 2020-07-17 11:44
    关注

    没法去看得到是啥结果 要不你换个 工具。 这个Jsoup 简单爬取数据还可以

    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置