我正在尝试从中抓取数据科学网
这是特定页面我要和.
下面是我用来提取摘要的代码:
import lxml
import requests
url = 'https://apps.webofknowledge.com/full_record.do?product=WOS&search_mode=GeneralSearch&qid=2&SID=Q1yAnqE4al4KxALF7RM&page=1&doc=3&cacheurlFromRightClick=no'
s = requests.Session()
d = s.get(url)
soup1 = etree.HTML(d.text)
这是我通过 Chrome 中的复制 xpath 获得的 xpath:
//*[@id="records_form"]/div/div/div/div[1]/div/div[4]/p/text()
所以我试图得到这样的摘要
path = '//*[@id="records_form"]/div/div/div/div[1]/div/div[4]/p/text()'
print(soup1.xpath(path))
然而,我只是热了一个空列表!然后我尝试了另一种方法来测试xpath。
Firstly,我将特定页面保存为本地html文件。
with open('1.html','w',encoding='UTF=8') as f:
f.write(d.text)
f.close()
Then,打开文件
s.mount('file://',FileAdapter())
d = s.get('file:///K:/single_paper.html')
soup2 = etree.HTML(d.text)
soup2.xpath('//*[@id="records_form"]/div/div/div/div[1]/div/div[4]/p/text()')
它给了我我想要的摘要!谁能告诉我为什么会发生这种情况?
Weired当我尝试以保存本地文件的方式对另一个页面执行这些步骤时,它再次返回一个空列表!
我检查了 Chrome 给出的 xpath 对于这两个页面是相同的。
那么有人能告诉我我的代码有什么问题以及如何修复它吗?