一.分析

1.爬取网站:https://xyq.163.com/chongwu/

2.获取网页源码:

request.get("https://xyq.163.com/chongwu/").text

这里就有问题了

这是查看网页源代码看到的源码,也是通过requests获取的源码,发现是空的

这是在检查处拿到的源码,发现有数据了

发现代码中没有使用json,js中也无相应json数据(2022.3.18更新:其实是有json文件的,当时没找到),因此数据是通过js动态加载出来的,因此选择selenium+火狐浏览器组合爬取页面(selenium是一个测试工具,selenium通过打开火狐驱动器加载火狐浏览器),可以获取加载js后的HTML页面

3.解析html,获取每个召唤兽data-id和名称

循环请求新的网址:https://xyq.163.com/chongwu/zhsxq.html?id=爬取的id&type=1

同样,新的网址依旧不能通过requests获取源代码

解析并抓取p标签的数据


二.代码实现:

from selenium import webdriver
from pyquery import PyQuery as pq
import pandas as pd firefox_options = webdriver.FirefoxOptions()
firefox_options.add_argument('--headless')
browser = webdriver.Firefox(options=firefox_options)
browser.get("https://xyq.163.com/chongwu/")
resp = browser.page_source
browser.quit()
data = pq(resp)
ret = data(".xxd li").items()
zhs_list = []
title = ["召唤兽名称"]
count = 0
for i in ret:
id = i.attr("data-id")
name = i.text()
browser2 = webdriver.Firefox(options=firefox_options)
browser2.get("https://xyq.163.com/chongwu/zhsxq.html?id=%d&type=1" % int(id))
resp2 = browser2.page_source
browser2.quit()
data2 = pq(resp2)
ret2 = data2(".zhszz p").items()
# 资质信息
zizhi_list = [name]
for j in ret2:
if count == 0:
top = j.text().split(" ")[0]
title.append(top)
zizhi = j('span').text()
zizhi_list.append(zizhi)
count += 1
zhs_list.append(zizhi_list) table = pd.DataFrame(zhs_list, columns=title)
print(table)
table.to_csv("梦幻西游召唤兽信息.csv",index=False,encoding="utf-8")

三.可能遇到的问题

1.如果没有下载selenium ,先下载

pip3 install selenium

2. 下载火狐浏览器驱动包firefoxdriver,https://github.com/mozilla/geckodriver/releases,下载完以后,将exe文件放入python.exe目录下,直接使用webdriver.Firefox()即可,否则就需要加上如下代码:

from selenium.webdriver.chrome.service import Service

s=Service(r"你的exe文件路径")
browser = webdriver.Firefox(service=s)


四.运行结果:

python爬取梦幻西游召唤兽资质信息(不包含变异)的更多相关文章

  1. Python爬取拉勾网招聘信息并写入Excel

    这个是我想爬取的链接:http://www.lagou.com/zhaopin/Python/?labelWords=label 页面显示如下: 在Chrome浏览器中审查元素,找到对应的链接: 然后 ...

  2. python爬取豆瓣视频信息代码

    目录 一:代码 二:结果如下(部分例子)   这里是爬取豆瓣视频信息,用pyquery库(jquery的python库). 一:代码 from urllib.request import quote ...

  3. Python 爬取美团酒店信息

    事由:近期和朋友聊天,聊到黄山酒店事情,需要了解一下黄山的酒店情况,然后就想着用python 爬一些数据出来,做个参考 主要思路:通过查找,基本思路清晰,目标明确,仅仅爬取美团莫一地区的酒店信息,不过 ...

  4. python 爬取豆瓣书籍信息

    继爬取 猫眼电影TOP100榜单 之后,再来爬一下豆瓣的书籍信息(主要是书的信息,评分及占比,评论并未爬取).原创,转载请联系我. 需求:爬取豆瓣某类型标签下的所有书籍的详细信息及评分 语言:pyth ...

  5. python 爬取bilibili 视频信息

    抓包时发现子菜单请求数据时一般需要rid,但的确存在一些如游戏->游戏赛事不使用rid,对于这种未进行处理,此外rid一般在主菜单的响应中,但有的如番剧这种,rid在子菜单的url中,此外返回的 ...

  6. python爬取网业信息案例

    需求:爬取网站上的公司信息 代码如下: import json import os import shutil import requests import re import time reques ...

  7. python爬取电影网站信息

    一.爬取前提1)本地安装了mysql数据库 5.6版本2)安装了Python 2.7 二.爬取内容 电影名称.电影简介.电影图片.电影下载链接 三.爬取逻辑1)进入电影网列表页, 针对列表的html内 ...

  8. python爬取豆瓣电影信息数据

    题外话+ 大家好啊,最近自己在做一个属于自己的博客网站(准备辞职回家养老了,明年再战)在家里 琐事也很多, 加上自己 一回到家就懒了(主要是家里冷啊! 广东十几度,老家几度,躲在被窝瑟瑟发抖,) 由于 ...

  9. python爬取考研专业信息

    伴随着2021考研成绩的公布,2021考研国家线也即将到来.大家是否有过考研的想法了?如果想考研我们就需要了解很多的信息,但是百度的上有太多信息需要我们去一一的鉴别,是比较浪费时间的.所以我们可以学习 ...

随机推荐

  1. Python 并发编程(下)

    Python 并发编程(下) 课程目标:掌握多进程开发的相关知识点并初步认识协程. 今日概要: 多进程开发 进程之间数据共享 进程锁 进程池 协程 1. 多进程开发 进程是计算机中资源分配的最小单元: ...

  2. go泛型教程

    泛型 原文 在线阅读 导读: 约束 使用方法 实现原理 跟其它语言的泛型进行对比 用例子学泛型 issues 泛型需满足 go1.18+ 约束 go使用interface作为约束,约束的意思是约束了这 ...

  3. LeetCode-020-有效的括号

    有效的括号 题目描述:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺 ...

  4. 研发管理平台DevOps使用流程

    研发管理平台DevOps使用流程:一.注册开发者账号二.登录平台三.点击:我的项目-内部项目三.点击"发布内部项目",创建项目五.进入项目六.研发管理平台研发管理平台的功能包括:可 ...

  5. composer.json和composer.lock到底是什么以及区别?

    composer方文档:https://docs.phpcomposer.com/04-schema.html我们在做项目的时候,总是要安装一些依赖.composer给我们提供了很多方便.直接运行co ...

  6. JavaScript面向对象—深入ES6的class

    JavaScript面向对象-深入ES6的class 前言 在前面一篇中主要介绍了JavaScript中使用构造函数+原型链实现继承,从实现的步骤来说还是比较繁琐的.在ES6中推出的class的关键字 ...

  7. LGP5493题解

    卡完常后来造福一下人类 如何从4.80s卡到920ms.jpg 本题解的复杂度为 \(O(\frac {n^{3/4}} {\log n})\),然而标算是 \(O(\frac {n^{2/3}} { ...

  8. 一比一还原axios源码(六)—— 配置化

    上一章我们完成了拦截器的代码实现,这一章我们来看看配置化是如何实现的.首先,按照惯例我们来看看axios的文档是怎么说的: 首先我们可以可以通过axios上的defaults属性来配置api. 我们可 ...

  9. .NET 7 预览版2 的亮点之 NativeAOT 正式合并入 .NET 主线

    .NET 中备受追捧和期待已久的功能NativeAOT终于出现在本周的.NET 7 预览版2中,该项目的工作仍在继续,该版本将 NativeAOT 从实验性的 dotnet/runtimelab re ...

  10. kubernetes里kube-proxy的ConfigMap误删除处理

    由于想要开启ipvs,没想到把cm当成pod删除了....然后就开始了修复之路 ConfigMap介绍 ConfigMap是一种API对象,用来将非加密数据保存到键值对中.可以用作环境变量.命令行参数 ...