笔者以爬取2018年AAAI人工智能顶会论文元数据为例。其中包括标题(title)和摘要(abstract)等字段
前言:
首先需要查看该网页是否可以爬取,通过在URL后加入/robots,txt可以查看。
①tbody问题
笔者通过谷歌浏览器选取上图红框内容的xpath如下:from lxml import etree
import requests
url = 'https://aaai.org/ocs/index.php/AAAI/AAAI18/rt/metadata/16583/0/'
response = requests.get(url)
html = response.content
data = etree.HTML(html).xpath('//*[@id="content"]/table/tbody/tr[4]/td[4]/text()')
print(data)
返回结果是一个空列表
经查询得知原因是:浏览器会对html文本进行一定的规范化,所以会自动在路径中加入tbody,导致读取失败,在此处直接在路径中去除tbody即可。
正确xpath:data = etree.HTML(html).xpath('//*[@id="content"]/table/tr[4]/td[4]/text()')
②URL问题
笔者通过谷歌浏览器选取上图红框内容的xpath如下:from lxml import etree
import requests
url = 'https://aaai.org/ocs/index.php/AAAI/AAAI18/paper/view/16065'