Python程序设计作业20

2019302523-于米提江 2022夏-程序设计实训 2022-07-29 20:50:46
import requests
from bs4 import BeautifulSoup

def crawler(book_list):
    headers = {
        "User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)",
    }
    id_list = []
    rank_list = []
    id_rank_dict = {}

    for page in range(1, 6):
        if len(id_list) < 3:
            base_url = 'https://www.qidian.com/rank/yuepiao?style=1&page={}'.format(page)
            response = requests.get(base_url, headers=headers)
            response.encoding = 'utf-8'
            html = response.text
            book_name = []
            book_rank = []
            htmls = BeautifulSoup(html, 'html.parser')
                # xpath守则
            for temp in htmls.find_all(class_='book-mid-info'):
                tempname = temp.find('a')
                book_name.append(tempname.string)
            for temp in htmls.find_all(class_='book-img-box'):
                tempnum = temp.span
                book_rank.append(tempnum.next_element)
            for i in book_list:
                k = ''
                j = 0
                if i in book_name:
                    for k in book_name:
                        if k == i:
                            id_list.append(i)
                            rank_list.append(int(book_rank[j]))
                            break
                        else:
                            j += 1
        elif len(id_list) == 3:
            id_rank_dict = dict(zip(id_list, rank_list))
            d_order = sorted(id_rank_dict.items(), key=lambda x: x[1], reverse=False)
            d_order[0] = list(d_order[0])
            d_order[1] = list(d_order[1])
            d_order[2] = list(d_order[2])
            d_order[0][1] = 1
            d_order[1][1] = 2
            d_order[2][1] = 3
            id_rank_dict = dict(d_order)
            return (id_rank_dict)
if __name__ == '__main__':
    book_list = ["大奉打更人", "明克街13号","灵境行者"]
    print(crawler(book_list))

 

...全文
238 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-Python 发布问题, 以便更快地解决您的疑问
【为什么学PythonPython 是当今非常热门的语言之一,2020年的 TIOBE 编程语言排行榜中 ,Python名列第一,并且其流行度依然处在上升势头。 在2015年的时候,在网上还经常看到学Python还是学R的讨论,那时候老齐就选择了Python,并且开始着手出版《跟老齐学Python》。时至今日,已经无需争论。Python给我们带来的,不仅仅是项目上的收益,我们更可以从它“开放、简洁”哲学观念中得到技术发展路线的启示。 借此机会,老齐联合CSDN推出了本课程,希望能影响更多的人走进Python,踏入编程的大门。 【课程设计】 本课程共包含三大模块: 一、基础知识篇 内置对象和基本的运算、语句,是Python语言的基础。本课程在讲解这部分知识的时候,不是简单地将各种知识做简单的堆砌,而是在兼顾内容的全面性的同时,更重视向学习者讲授掌握有关知识的方法,比如引导学习者如何排查错误、如何查看和理解文档等。   二、面向对象篇 “面向对象(OOP)”是目前企业开发主流的开发方式,本课程从一开始就渗透这种思想,并且在“函数”和“类”的学习中强化面向对象开发方式的学习——这是本课程与一般课程的重要区别,一般的课程只在“类”这里才提到“对象”,会导致学习者茫然失措,并生畏惧,乃至于放弃学习。本课程则是从开始以“润物细无声”的方式,渗透对象概念,等学习到本部分的时候,OOP对学习者而言有一种“水到渠成”的感觉。   三、工具实战篇 在项目实战中,除了前述的知识之外,还会用到很多其他工具,至于那些工具如何安装?怎么自己做工具?有那些典型工具?都是这部分的内容。具体来说,就是要在这部分介绍Python标准库的应用以及第三方包的安装,还有如何开发和发布自己的工具包。此外,很多学习Python的同学,未来要么从事数据科学、要么从事Web开发,不论哪个方向,都离不开对数据库的操作,本部分还会从实战的角度,介绍如何用Python语言操作常用数据库。

34

社区成员

发帖
与我相关
我的任务
社区描述
依托实践实训环节,为同学们更好掌握所需的基本技能,提供一个交流学习的社区。
python安全linux 高校
社区管理员
  • shawn904
  • weixin_44003872
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧