吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1473|回复: 16
收起左侧

[求助] python 爬豆瓣top250遇到问题?

[复制链接]
double07 发表于 2021-3-15 21:38
[Python] 纯文本查看 复制代码
import requests
import xlwt
from lxml import etree

# 网页请求
def gethtml(url):
    headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}
    response=requests.get(url,headers=headers)
    return response.content.decode()

#网页解析
def getxpath(a):
    html=etree.HTML(a)
    d=html.xpath("//*[@id='content']/div/div[1]/ol//li")
    # print(d[0])
    data_list = []
    for i in d:
        temp={}
        temp['rank']=i.xpath(".//em/text()")[0]
        temp['title']=i.xpath("./div/div[2]/div[1]/a/span[1]/text()")[0]
        temp['score']=i.xpath(".//span[@class='rating_num']/text()")[0]
        data_list.append(temp)
    return data_list
        
# 翻页
def next_page():
    url_np="https://movie.douban.com/top250?start={}&filter="
    url_list=[url_np.format(i) for i in range(0,250,25)]
    return url_list


    
#执行函数
def run_db():
    page=next_page() #显示所有页,并形成列表'
    for url in page:
        ghtml=gethtml(url) #获取当前页源码
        gpath=getxpath(ghtml) #获取当前页数据
    return gpath
print(run_db())



想输出完整的250条内容,但不知为什么只输出最后一页25条内容?不知道代码哪里有问题?另外用pandas把爬取结果输出excel格式的内容代码怎样写?刚开始学爬虫,希望有大神能支持一下 1.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kof21411 发表于 2021-3-15 21:45
[Python] 纯文本查看 复制代码
    for url in page:
        ghtml=gethtml(url) #获取当前页源码
        gpath=getxpath(ghtml) #获取当前页数据
    return gpath

这里写错了,最终止返回最后一次的数据

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
ccwuax + 1 + 1 我很赞同!

查看全部评分

 楼主| double07 发表于 2021-3-15 22:07
kof21411 发表于 2021-3-15 21:45
[mw_shl_code=python,true]    for url in page:
        ghtml=gethtml(url) #获取当前页源码
        g ...

意思是每爬完一页数据就要输出并保存数据?我理解是全部爬完再统一输出,理解出错?
zeknight 发表于 2021-3-15 22:11
最好的办法学会用DEBUG,否则你会一直遇到各种问题。

在调试中多看看就明白了。

ccwuax 发表于 2021-3-15 22:16
double07 发表于 2021-3-15 22:07
意思是每爬完一页数据就要输出并保存数据?我理解是全部爬完再统一输出,理解出错?

你试试把return改成print是不是就全部输出了,可以用一个list或写入文件保存结果
super.me 发表于 2021-3-15 22:27
网上有源代码,你对比下,这个应该没有什么区别啊,爬虫的东西都差不多。py charm不会debug ?
 楼主| double07 发表于 2021-3-15 22:30
super.me 发表于 2021-3-15 22:27
网上有源代码,你对比下,这个应该没有什么区别啊,爬虫的东西都差不多。py charm不会debug ?

一直用spyder,不知道有debug,试试pycharm
13435211357 发表于 2021-3-15 22:39
楼主能分享一手python中文版吗
 楼主| double07 发表于 2021-3-15 22:42
13435211357 发表于 2021-3-15 22:39
楼主能分享一手python中文版吗

我用annaconda,链接:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
神秘阿凯 发表于 2021-3-15 23:03
本帖最后由 神秘阿凯 于 2021-3-15 23:05 编辑

这样应该就行了

332167c1fa71913aa0670ca45be4f7d.png

免费评分

参与人数 1吾爱币 +1 收起 理由
double07 + 1 我很赞同!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-17 02:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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