python爬取梦幻西游召唤兽资质信息(不包含变异)


一.分析

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)


 

四.运行结果:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM