一.分析

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. 基于消息队列(RabbitMQ)实现延迟任务

    一.序言 延迟任务应用广泛,延迟任务典型应用场景有订单超时自动取消:支付回调重试.其中订单超时取消具有幂等性属性,无需考虑重复消费问题:支付回调重试需要考虑重复消费问题. 延迟任务具有如下特点:在未来 ...

  2. DPLL 算法(求解k-SAT问题)详解(C++实现)

    \(\text{By}\ \mathsf{Chesium}\) DPLL 算法,全称为 Davis-Putnam-Logemann-Loveland(戴维斯-普特南-洛吉曼-洛夫兰德)算法,是一种完备 ...

  3. python+pytest接口自动化(6)-请求参数格式的确定

    我们在做接口测试之前,先需要根据接口文档或抓包接口数据,搞清楚被测接口的详细内容,其中就包含请求参数的编码格式,从而使用对应的参数格式发送请求.例如某个接口规定的请求主体的编码方式为 applicat ...

  4. quartz框架(六)-ThreadPool

    ThreadPool 本篇博文,博主将介绍Quartz框架中ThreadPool线程池相关的内容.线程池顾名思义,就是一个可以帮助我们来进行线程资源管理的对象.在web开发中,常见的就有数据库连接池, ...

  5. jQuery Validatede 结合Ajax 表单验证提交

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. windows禁止iis开机自启

    按Win 和R,打开运行窗口.输入services.msc确定打开服务窗口.找到World Wide Web Publishing Service禁用并停止.

  7. vue3-异步组件的使用

    我们通常会在实际开发中,将项目进行分包处理,以此加快项目的速度 即使用异步组件 //异步组件,分包处理 import {defineAsyncComponent} from "vue&quo ...

  8. git 回滚方式

    git push 命用于从将本地的分支版本上传到远程并合并. 命令格式如下: git push <远程主机名> <本地分支名>:<远程分支名> 如果本地分支名与远程 ...

  9. mysql 索引模板

    DROP TABLE IF EXISTS `table_name`; CREATE TABLE `table_name` ( `id` bigint(20) UNSIGNED NOT NULL AUT ...

  10. 使用Python 模拟RSA 加密与解密

    一.关于 RSA具体原理请移步其他文章,本文主要使用Python 来模拟RSA 算法的实现过程 二.简要分析 在RSA算法中,存在以下几个参数: 1.大素数p.q 2.n = p *q 3.Phi_n ...