好久没发帖了 发个selenium版回忆回忆
fromselenium import webdriverfromselenium.webdriver.common.by import By
fromselenium.webdriver.support.wait import WebDriverWait
import selenium.webdriver.support.expected_conditions asEC
import time,requests,os
from multiprocessing.dummy import Pool
url = 'https://www.renrendoc.com/paper/137639109.html'
# 声明浏览器对象,将chromedriver驱动放在chrome浏览器安装目录下,指定驱动的绝对路径
browser = webdriver.Chrome(executable_path=r'C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chromedriver.exe')
wait = WebDriverWait(browser, 10)
try:
browser.get(url)
foriinrange(2):
wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'fc2e')))# 等待fc2e元素加载完成
keyword = browser.find_element_by_class_name('fc2e') # 获取元素
browser.execute_script('arguments.click();',keyword) # 用selenium的js点击元素当然也可以用.clink(有些个别的点不了)
time.sleep(2)
browser.execute_script('window.scrollTo(0,document.body.scrollHeight)') #将滚动条滚到底部玩法很多比如豆瓣电影排行榜的ajax就可以用这个爬
time.sleep(1)
wait.until(EC.presence_of_element_located((By.ID, 'page')))
doc = browser.find_element_by_id('page')
docs = doc.find_elements_by_tag_name('img')
imgs = []
for iindocs:
img_url = i.get_attribute('src')
imgs.append(img_url)
finally:
browser.close()
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36',
}
def res(url):
name = url.split('-')[-1]
resp = requests.get(url,headers=headers).content
path = 'imgs' + '/' +name
withopen(path,'wb') asf:
f.write(resp)
print('下载完毕')
pool = Pool(4)
ifnotos.path.exists('imgs'):
os.makedirs('imgs')
pool.map(res,imgs)
pool.close()
pool.join()
print('over')
自己占一楼selenium虽然慢些 但有些需要解密的网站 不需要解密了 功能很牛皮 真的有人会爬虫用selenium吗?这个好像一般都用在测试吧? 的確是大牛 rettrey 发表于 2021-7-24 20:49
真的有人会爬虫用selenium吗?这个好像一般都用在测试吧?
很多得加密网站爬不下来 就用selenium 试试 很好用 这里是回忆了 rettrey 发表于 2021-7-24 20:49
真的有人会爬虫用selenium吗?这个好像一般都用在测试吧?
要知道selenium本身就是一个自动化工具,而不是自动化测试工具。国人爱用来做测试而已。 人这运气,昨天我还在搜,今天直接看到主页有人发,em..... 考虑要不要来张彩票 虚无空幻 发表于 2021-7-25 10:41
人这运气,昨天我还在搜,今天直接看到主页有人发,em..... 考虑要不要来张彩票
必须来一张500万的
页:
[1]
2