python抓取动态网页(爬取浏览器click事件也执行click事件执行)

优采云 发布时间: 2022-02-14 00:20

  python抓取动态网页(爬取浏览器click事件也执行click事件执行)

  最近突然想到爬百度的学术参考。大家可以看看我之前的博客: 但是如果用这种方法,太痛苦了,需要手动复制粘贴,所以这里介绍一下使用selenium来实现这个。函数,粘贴代码:

  #-*- coding:utf-8 -*-

from selenium import webdriver

import time

from bs4 import BeautifulSoup

#拼接url

titlename='Application of biosorption for the removal of organic pollutants: a review'

url_name=titlename.split(' ')

url='http://xueshu.baidu.com/s?wd='+'+'.join(url_name)

#打开Firefox

diver=webdriver.Firefox()

diver.get(url)

#防止引用太多,不断click,直到参考文献下不存在‘加载更多’

try:

for i in range(0,50):

# 等待网站加载完成

time.sleep(0.2)

diver.find_elements_by_class_name('request_situ')[1].click()

except:

print '********************************************************'

#等到加载完成获取网页源码

time.sleep(10)

#使用BeautifulSoup获取参考文献

soup=BeautifulSoup(diver.page_source,'lxml')

items=soup.find('div',{'class':'con_reference'}).find_all('li')

for i in items:

print i.find('a').get_text()

#关闭网页

diver.close()

  注意:

  代码标记为红色。因为这个错误,我花了很长时间。

  我遇到了一个问题。每次第一次抓取,click事件都没有响应。我可以用断点检查,发现是OK的,然后就OK了。我不知道为什么会这样。

  Chrome 浏览器点击事件不执行

  如果不想看到浏览器出现,可以使用 diver=webdriver.PhantomJS() 代替 diver=webdriver.Firefox()

  以上的基础是安装PhantomJS、geckodriver.exe

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线