```python
在这里插入
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
data1 = []
c=0
# 让服务器识别不出是selenium机器人
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
driver.get('https://kns.cnki.net/kns8/defaultresult/index')
time.sleep(2)
driver.find_element(By.ID,"txt_search").send_keys('关键词作者') # .send_keys() 向搜索框中输入内容
driver.find_element(By.XPATH,'/html/body/div[2]/div/div[2]/div[1]/div[1]/div[1]').click()#点击主题
time.sleep(2)
driver.find_element(By.XPATH,'/html/body/div[2]/div/div[2]/div[1]/div[1]/div[2]/ul/li[6]/a').click()#点击作者
time.sleep(3)
driver.find_element(By.XPATH,'/html/body/div[2]/div/div[2]/div[1]/div[1]/div[2]/ul/li[6]/a').click()#点击作者
time.sleep(2)
driver.find_element(By.XPATH,'/html/body/div[2]/div/div[2]/div[1]/input[1]').click()#再次点击作者搜索框选中身份
time.sleep(3)
driver.find_element(By.XPATH,'/html/body/div[2]/div/div[2]/div[1]/div[2]/ul/li[1]/div/label/input').click()#选中身份
time.sleep(2)
driver.find_element(By.CLASS_NAME,"search-btn").click() # .click() 代表点击动作
time.sleep(2)
while True:
for i in range(0,20):
driver.find_element(By.XPATH,'//*[@id="gridTable"]/table/tbody/tr[{}]/td[9]/a[4]/i'.format(i+1)).click()
time.sleep(3)
if c>=0:
trs = driver.find_element(By.XPATH,"//*[@id='layui-layer{}']/div[2]/table/tbody/tr[1]/td[2]".format(i+c*20+1)).text
time.sleep(5)
data1.append(trs)
driver.find_element(By.XPATH,'//*[@id="layui-layer{}"]/span/a'.format(i+c*20+1)).click()
time.sleep(3)
print(len(data1))
# 下一页
try:
next = driver.find_element(By.ID,"PageNext").click()
c = c+1
time.sleep(4)
# html = driver.page_source
# print(html)
except:
print("没有下一页了")
break
driver.quit()
print(data1)代码片
使用selenium爬取特定关键词作者的知乎文献引用部分
最新推荐文章于 2024-10-04 18:42:51 发布
这段代码演示了如何使用 Selenium 和 Chrome 浏览器驱动进行网页自动化操作,以规避服务器的机器人检测。主要步骤包括输入关键词、选择搜索条件、点击作者、筛选作者身份并执行搜索。之后,代码逐页抓取并解析论文作者信息,存储到数据列表中,直至无下一页。整个过程涉及网页元素定位、点击、等待和数据提取,适用于网络爬虫和数据抓取场景。
摘要由CSDN通过智能技术生成