一,站点难点分析
1,构造地址难度大,所有的地址通过ajax请求访问并通过多个js封装调用,参数通过sql字段拼接。
2,即使构造好地址,通过浏览器打开,全部返回首页。
二,站点的解决办法(selenium+webdriver+xpath+mysql)
综上分析站点的技术难点,通过以下几种方法解决
1,单纯的通过构造地址的方式请求网页的方法是不可行的,因此想到了python的selenium框架,Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。通过配置 selenium的环境,安装浏览器驱动,完成网页请求的环节。
2,xpath完成信息的提取操作,提取过程比较麻烦,提取的信息存在多样性,信息的编码问题也困扰了我好久。
3,mysql的存储问题还是比较简单的,主要就是如何存储list集合信息。
三,攻关总结
1,站点的分析
站点的分析是关键所在,对站点的仔细分析,可以让我们解决很多难题,比如爬取信息缺失的控制,效率的提高
2,特殊字符的去除方法,比如空格,换行 共有2种方法处理两种思路
a=a1[1].strip().lstrip().rstrip(',')
b=a1[2].strip().lstrip().rstrip(',')
c=html.xpath('normalize-space(//td/strong[text()="文摘"]/../../td[2]/text())')
3,python中list集合转str
keywords=html.xpath('//*[@name="gjcBox"]/@value')
keyword="/".join(keywords)
4,xpath的提取(table表格定位到td,怎么td后的下一个td)
doi=html.xpath('normalize-space(//td/strong[text()="DOI"]/../../td[2]/a/text())')
5,注意python2和python3在编码上的处理