python selenium对象怎么序列化_python selenium爬取斗鱼

不加延迟报错selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:”xpath”,”selector”:”.//span[@class=”DyListCover-hot”]”}

(Session info: chrome=80.0.3987.122)

a50b6635213e9d3bc66071bc4624b4f4.png最开始以为是版本问题,不过应该不会,我检查了下版本

然后我注释掉这一段

cb958cd70a0d1666e01668a0c4aaf2e3.png

然后报Message: stale element reference: element is not attached to the page document

e2cde18ef5b63c3bd09aa9fd2c314697.png

但是却爬取到一段消息

67cdaaf26ed086f6542fd2546b1afbc3.png

说明有可能是延时的问题,在开头加上延时,ok

附上源码

import json

import time

from selenium import webdriver

driver=webdriver.Chrome()

driver.get("https://www.douyu.com/directory/all")

# driver.close()

#

def douyu():

##要加延迟,不然要报错 time.sleep(5)

li_list=driver.find_elements_by_xpath('//*[@id="listAll"]/section[2]/div[2]/ul/li')

# print(list_all)

content_dict={}

for li in li_list:

content_dict["title"]=li.find_element_by_xpath(".//h3").text

content_dict["belong"]=li.find_element_by_xpath('.//span[@class="DyListCover-zone"]').text

content_dict["hot"]=li.find_element_by_xpath('.//span[@class="DyListCover-hot"]').text

content_dict["author"] = li.find_element_by_xpath(".//h2").text

print(content_dict)

#将字典转换为字符串便于存储

s=json.dumps(content_dict,ensure_ascii=False) #json序列化默认对中文采用ascii编码,所以False

with open("douyu.txt","a",encoding="utf-8") as f:

f.write(s+'\n')

next_url=driver.find_elements_by_xpath('//li[@title="下一页"]/span[@class="dy-Pagination-item-custom"]')

#三元表达式

next_url=next_url[0] if len(next_url) > 0 else None

while next_url is not None:

next_url.click()

time.sleep(3)

#我调我自己 点击下一页停5s继续爬取 延时设在开头 douyu()

douyu()

72ddd16c69f8d1cbaa6d73dc34bca0e0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值