当前位置: 代码迷 >> 综合 >> 爬取网页源代码隐藏的那部分的数据,需要使用selenium+chromedriver.exe
  详细解决方案

爬取网页源代码隐藏的那部分的数据,需要使用selenium+chromedriver.exe

热度:81   发布时间:2023-11-17 22:18:23.0

selenium 是一套完整的web应用程序测试系统,可以模拟真实浏览器,自动化测试工具。

强大之处是 使用selenium是模拟真实用户对浏览器所做的界面输入,点击等等操作。所以能够无视各大网站的反爬虫机制!!

chromedriver是谷歌Chrom推出的headless浏览器,无界面。

下面我们来安装一下chromedriver.exe,下载地址http://chromedriver.storage.googleapis.com/index.html

1.找到与你的本地谷歌浏览器版本一致的chromedriver,如果没有,则找到相近版本即可

 

找到与你电脑系统相同的版本,window系统只有32位的,64位电脑也可以使用

 

下载后解压,将 chromedriver.exe放入你的谷歌浏览器安装的位置,我的是:C:\Program Files (x86)\Google\Chrome\Application

2.下面开始安装需要的库,直接pip install selenium,或者通过settings安装

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
import re# 创建chrome浏览器
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(executable_path=r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe', chrome_options=chrome_options)#打开网址
driver.get("https://www.tujia.com/detail/13242895.htm")
res = driver.page_source
print(driver.page_source)
driver.close()soup = BeautifulSoup(res, 'lxml')# 找到所有的表格name = soup.find_all('span',attrs={'class':'title__name'})
print(name[0].text)print('----------------------------------------------')price = soup.find_all('span',attrs={'class':'common__button_price'})
print(price[0].text)print('----------------------------------------------')add = soup.find_all('address',attrs={'class':'unit-title__address'})
print(add[0].text)print('----------------------------------------------')beds = soup.find_all('span',attrs={'style':'text-decoration: underline'})
print(beds[0].text)print('----------------------------------------------')des = soup.find_all('div',attrs={'class':'unit-description simple'})
dess = des[0].text
dess = re.sub(r'\n','', dess)
print(dess)

本文参考文章:Python使用slenium+chromedriver爬虫教程

selenium用法详解

  相关解决方案