2. 准备模块
import re
from selenium import webdriver
import time
import requests
3. 调用浏览器驱动
driver = webdriver.Chrome()
4. 页面滚动
def drop\_down():
for x in range(1, 27, 3):
time.sleep(1)
j = x / 27 # 1/9 3/9 5/9 9/9
js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight \* %f' % j
driver.execute_script(js)
5. 保存数据
lis = driver.find_elements_by_css_selector('.dgControl\_list li .iuscp')
page = 1
for li in lis:
try:
img_url = li.find_element_by_css_selector('.mimg').get_attribute('src')
title = li.find_element_by_css_selector('.b\_dataList a').get_attribute('title')
title = re.sub(r'[\/"<>\*?|\n]', '', title)
img_content = requests.get(url=img_url).content
with open('img//' + title + str(page) + '.jpg', mode='wb') as f:
f.write(img_content)
print(title, img_url)
page +=1
这里特意留了一个小bug,诶嘿~
5. 效果
全角色语音+高清彩图部分
1.准备工具
源码资料电子书:点击此处跳转文末名片获取
2. 准备模块
import requests
import re
import execjs
3. 请求链接
4. 本次目标
所有角色的:
- 基础介绍
- 中日语音
- 图片
5. 分析数据来源
1. 右键点击检查(开发者工具)
2.刷新网页,找准对应数据
6. 开始代码
url = 'https:///main/character/liyue?char=1'
html_data = requests.get(url).text
print(html_data)
源码资料电子书:点击此处跳转文末名片获取
筛选数据
随便搜索网站内包含内容:“南十字”
使用正则表达式匹配数据内容
js_text = re.findall('window.\_\_NUXT\_\_=(.\*);', html_data)[0]
7. 执行结果
html_data = requests.get(url).text
js_text = re.findall('window.\_\_NUXT\_\_=(.\*);', html_data)[0]
result = execjs.eval(js_text)
此时会出现编码问题
加指定编码
import subprocess
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")
再次运行,无报错
使用pprint查看数据结构
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!