使用python来爬取网页信息经常遇到反爬,对于一些加密的信息更是难搞,下载.woff之类的文件再解码对于菜鸡来说有点难,而且代码量太大。
相对而言使用OCR(文字识别)比较方便,个人感觉不好的就是需要把图片给截取下来有点占地方,所以如果只是截取少量的话这个还是很不错的。
python3.7
tesseract
chromedriver
第三方库:
selenium pytesseract time PIL
使用selenium的webdriver来定位评分所在的元素,使用PIL的截屏来获取评分的图片,再通过pytesseract来识别图片文字,进行输出。
安装第三方库第三方库安装命令
pip install selenium
pip install time
pip install PIL
pip install pytesseract
(关于selenium和tesseract的安装使用请另行百度,或者哪天我有时间了写一下也行,嘿嘿嘿)
# 导入模拟浏览器界面的selenium模块库
from selenium import webdriver
# 导入时间库模块
from time import sleep
from PIL import Image
import pytesseract
#设置要爬取的网址
url = 'https://movie.douban.com/subject/26087750/'
#有些网站反爬比较厉害,如果需要可自行设置,这个不一定有用
'''
options = webdriver.ChromeOptions()
options.add_argument('--kiosk')
driver = webdriver.Chrome(chrome_options=options)
'''
#打开Chrome进行截取
driver = webdriver.Chrome()
driver.get(url)
#定位元素
pingfen = driver.find_element_by_xpath('//strong[@class="ll rating_num"]')
#截取
pingfen.screenshot('kuiba.png')
sleep(5)
driver.quit()
#使用tesseract进行文字识别
text=pytesseract.image_to_string(Image.open('kuiba.png'))
print(text)
结果图
定位评分所在的元素:
原创文章 1获赞 1访问量 17
关注
私信
展开阅读全文
作者:谢三岁^o^