毕业论文找文献是个问题,我直接用python把全网文献爬了一遍,这波就很舒服

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

desired_capabilities[“pageLoadStrategy”] = “none”

设置谷歌驱动器的环境

options = webdriver.ChromeOptions()

设置chrome不加载图片,提高速度。

options.add_experimental_option(“prefs”, {“profile.managed_default_content_settings.images”: 2})

设置不显示窗口

options.add_argument(‘–headless’)

创建一个谷歌驱动器

driver = webdriver.Chrome(options=options)

设置搜索主题

theme = “Python”

设置所需篇数

papers_need = 100

打开页面搜索关键词

打开页面

driver.get(“https://www.****.net”)

网址我屏蔽了,各位自己换一下换成最大的那个查文献论文的网站。

传入关键字

WebDriverWait( driver, 100 ).until( EC.presence_of_element_located( (By.XPATH ,‘’‘//*[@id=“txt_SearchText”]’‘’) ) ).send_keys(theme)

点击搜索

WebDriverWait( driver, 100 ).until( EC.presence_of_element_located( (By.XPATH ,“/html/body/div[1]/div[2]/div/div[1]/input[2]”) ) ).click()

time.sleep(3)

点击切换中文文献

WebDriverWait( driver, 100 ).until( EC.presence_of_element_located( (By.XPATH ,“/html/body/div[5]/div[1]/div/div/div/a[1]”) ) ).click()

time.sleep(1)

获取总文献数和页数

res_unm = WebDriverWait( driver, 100 ).until( EC.presence_of_element_located( (By.XPATH ,“/html/body/div[5]/div[2]/div[2]/div[2]/form/div/div[1]/div[1]/span[1]/em”) ) ).text

去除千分位里的逗号

res_unm = int(res_unm.replace(“,”,‘’))

page_unm = int(res_unm/20) + 1

print(f"共找到 {res_unm} 条结果, {page_unm} 页。")

解析结果页

赋值序号,控制爬取的文章数量。

count = 1

当爬取数量小于需求时,循环网页页码。

while count <= papers_need:

等待加载完全,休眠3S。

在适当的地方加上 time.sleep(3) 延时几秒,既可以等待页面加载,也可以防止爬取太快被封IP。

time.sleep(3)

title_list = WebDriverWait( driver, 10 ).until( EC.presence_of_all_elements_located( (By.CLASS_NAME ,“fz14”) ) )

循环网页一页中的条目

for i in range(len(title_list)):

try:

term = count%20 # 本页的第几个条目

title_xpath = f"/html[1]/body[1]/div[5]/div[2]/div[2]/div[2]/form[1]/div[1]/table[1]/tbody[1]/tr[{term}]/td[2]"

author_xpath = f"/html[1]/body[1]/div[5]/div[2]/div[2]/div[2]/form[1]/div[1]/table[1]/tbody[1]/tr[{term}]/td[3]"

source_xpath = f"/html[1]/body[1]/div[5]/div[2]/div[2]/div[2]/form[1]/div[1]/table[1]/tbody[1]/tr[{term}]/td[4]"

date_xpath = f"/html[1]/body[1]/div[5]/div[2]/div[2]/div[2]/form[1]/div[1]/table[1]/tbody[1]/tr[{term}]/td[5]"

database_xpath = f"/html[1]/body[1]/div[5]/div[2]/div[2]/div[2]/form[1]/div[1]/table[1]/tbody[1]/tr[{term}]/td[6]"

title = WebDriverWait( driver, 10 ).until( EC.presence_of_element_located((By.XPATH ,title_xpath) ) ).text

authors = WebDriverWait( driver, 10 ).until( EC.presence_of_element_located((By.XPATH ,author_xpath) ) ).text

source = WebDriverWait( driver, 10 ).until( EC.presence_of_element_located((By.XPATH ,source_xpath) ) ).text

date = WebDriverWait( driver, 10 ).until( EC.presence_of_element_located((By.XPATH ,date_xpath) ) ).text

database = WebDriverWait( driver, 10 ).until( EC.presence_of_element_located((By.XPATH ,database_xpath) ) ).text

点击条目

title_list[i].click()

获取driver的句柄

n = driver.window_handles

driver切换至最新生产的页面

driver.switch_to_window(n[-1])

开始获取页面信息

title = WebDriverWait( driver, 10 ).until( EC.presence_of_element_located((By.XPATH ,“/html/body/div[2]/div[1]/div[3]/div/div/div[3]/div/h1”) ) ).text

authors = WebDriverWait( driver, 10 ).until( EC.presence_of_element_located((By.XPATH ,“/html/body/div[2]/div[1]/div[3]/div/div/div[3]/div/h3[1]”) ) ).text

institute = WebDriverWait( driver, 10 ).until( EC.presence_of_element_located((By.XPATH ,“/html[1]/body[1]/div[2]/div[1]/div[3]/div[1]/div[1]/div[3]/div[1]/h3[2]”) ) ).text

abstract = WebDriverWait( driver, 10 ).until( EC.presence_of_element_located((By.CLASS_NAME ,“abstract-text”) ) ).text

try:

keywords = WebDriverWait( driver, 10 ).until( EC.presence_of_element_located((By.CLASS_NAME ,“keywords”) ) ).text[:-1]

except:

keywords = ‘无’

url = driver.current_url

获取下载链接

link = WebDriverWait( driver, 10 ).until( EC.presence_of_all_elements_located((By.CLASS_NAME ,“btn-dlcaj”) ) )[0].get_attribute(‘href’)

link = urljoin(driver.current_url, link)

写入文件

res = f"{count}\t{title}\t{authors}\t{institute}\t{date}\t{source}\t{database}\t{keywords}\t{abstract}\t{url}“.replace(”\n",“”)+“\n”

print(res)

with open(‘CNKI_res.tsv’, ‘a’, encoding=‘gbk’) as f:

f.write(res)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值