鱼C论坛

 找回密码
 立即注册
查看: 2083|回复: 27

[已解决]关于翻页的问题

[复制链接]
发表于 2020-6-30 15:52:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 lpp25621832 于 2020-7-2 22:14 编辑

小羊苏西。
最佳答案
2020-6-30 23:04:34
本帖最后由 冷小漠 于 2020-6-30 23:06 编辑
def request_detail_page(self, url):
        driver = self.driver
        self.driver.execute_script("window.open('%s')" % url)
        self.driver.switch_to.window(self.driver.window_handles[1])
        source = self.driver.page_source
        self.parse_detail_page(source)
        time.sleep(1)
        self.driver.close()
        self.driver.switch_to.window(self.driver.window_handles[0])
我个人觉得大概率出现在这个函数中的注入js上:window.open
首先我不太明白你函数开头的 driver = self.driver 的含义,因为你函数内部都没有使用到driver,一直用的仍然是self.driver
其次,driver = self.driver 这样的写法也起不到什么作用,在py中,这样是同一个对象...
最后,按理说是 window.open 在self.driver这个对象上跳转页面之后,就无法正确翻页了
没有对应网页,只能瞎猜咯 Snipaste_2020-06-30_23-06-11.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-30 16:40:46 | 显示全部楼层
至少也得把parse_list_page这块代码贴出来吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-30 17:13:41 | 显示全部楼层
代码贴全
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-30 20:14:34 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:15 编辑

小兔瑞贝卡。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-30 21:54:18 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:16 编辑

小猪乔治。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-30 21:54:27 | 显示全部楼层
lpp25621832 发表于 2020-6-30 20:14
# -*- coding: utf-8 -*-

from selenium import webdriver

你这代码运行不报错吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-30 22:10:56 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:17 编辑

小狐狸弗雷迪
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-30 22:11:38 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:17 编辑

大象艾米莉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-30 22:18:57 | 显示全部楼层

会不会是复制错了,就parse_detail_page这个,问题就不少呀

   def parse_detail_page(self, source):
        html = etree.HTML(source)
        element = driver.find_element_by_xpath('//*[@id="datalist"]/table') //正确应该是self.driver
        ta_content = element.find_elements_by_xpath('//*[@id="datalist"]/table/tbody/tr[1]')
        tb_content = element.find_elements_by_xpath(('//*[@id="datalist"]/table/tbody/tr[2]')  //多了个括号
       lst1 = []
        for ta in ta_content:
            lsty1.append(ta.text) //这行lsty1,上面是lst1 ?
            print(lst1)
        lst2 = []
        for tb in tb_content:
            lst2.append(tb.text)
            print(lst2)
        time.sleep(1)

        l2 = lst1, lst2
        values = l2
        
       with open('C:/demo/qtw/demo.csv', 'a', newline='') as fp:
            writer = csv.writer(fp)
            writer.writerow(values)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-30 22:31:01 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:17 编辑

斑马苏怡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-30 22:33:51 | 显示全部楼层
lpp25621832 发表于 2020-6-30 22:31
大神,可能是我复制错了。。手滑。。。。
总之我是真的可以爬完第一页的所有数据,就是翻不到第二页
但 ...


看了代码整体逻辑,应该是没问题的。若方便,可以将url私信给我,帮你调试看下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-30 22:38:46 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:18 编辑

唐姐克洛伊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-30 23:04:34 | 显示全部楼层    本楼为最佳答案   
本帖最后由 冷小漠 于 2020-6-30 23:06 编辑
def request_detail_page(self, url):
        driver = self.driver
        self.driver.execute_script("window.open('%s')" % url)
        self.driver.switch_to.window(self.driver.window_handles[1])
        source = self.driver.page_source
        self.parse_detail_page(source)
        time.sleep(1)
        self.driver.close()
        self.driver.switch_to.window(self.driver.window_handles[0])
我个人觉得大概率出现在这个函数中的注入js上:window.open
首先我不太明白你函数开头的 driver = self.driver 的含义,因为你函数内部都没有使用到driver,一直用的仍然是self.driver
其次,driver = self.driver 这样的写法也起不到什么作用,在py中,这样是同一个对象...
最后,按理说是 window.open 在self.driver这个对象上跳转页面之后,就无法正确翻页了
没有对应网页,只能瞎猜咯 Snipaste_2020-06-30_23-06-11.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-1 01:15:30 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:19 编辑

小兔理查德
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-1 01:46:05 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:19 编辑

大象埃德蒙
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-1 08:46:49 | 显示全部楼层
lpp25621832 发表于 2020-6-30 22:38
逻辑没有问题,那为什么不能翻页呢?就是我先爬完第一面的所有链接,即详情页的内容,然后再爬下一页所有 ...

你可以稍微修改下,换个网站测试,应该能正常点下一页的。很有可能就是你现在爬的网站比较特殊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-1 13:50:59 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:22 编辑

兔小姐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-1 13:58:44 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:23 编辑

祖祖和莎莎
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-1 14:00:21 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:24 编辑

小猫坎迪
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-1 15:14:34 | 显示全部楼层
本帖最后由 lpp25621832 于 2020-7-2 22:24 编辑

小熊贝琳达
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 04:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表