背景

昨天看了一篇获取 House Price 的文章后,运行了案例代码,能看懂,但对 html 解析的用法还不熟悉。

今天继续练习 Python 编码,目标是腾讯 Cosmic ,先完成基本信息的获取。为什么选这个呢,主要是昨天想对着某文章练习 Python Code of Spider 时,发现它是一个付费专栏,于是自己来写写。

页面元素分析

开发者模式,定位到一个节点,根据 class 信息查询 Cosmic 节点,目标是具有ret-search-item clearfixli 元素。

动漫的各项信息定位:

  1. 地址:第一个 a 标签下的 img 标签的 data-original 属性。
  2. 名称:第一个 a 标签的 titile 属性。
  3. 作者:具有 ret-works-author 类属性的 p 标签的文本。
  4. 描述:具有 ret-works-decs 类属性的 p` 标签的文本。
  5. 详情地址:具有 ret-works-view 类属性的 a 标签的 href 属性。

编码实现

取全部页面,考虑用多线程协作。

from bs4 import BeautifulSoup
import numpy as np
import requests
from requests.exceptions import RequestException
import threading"--动漫网页方法--"
def spiderPage(url, page):try:headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3947.100 Safari/537.36"}html1 = requests.request("GET", url, headers=headers, timeout=10)html1.encoding = 'utf-8'  # 加编码html = html1.text# print('scrawl result')# print(html)return htmlexcept RequestException:  # 异常捕获print('第{0}读取网页失败'.format(page))return None"--解析列表页面的动漫信息--"
def parsePage(url, page):# 取页面html = spiderPage(url, page)html = str(html)if html is not None:# soup = BeautifulSoup(html, 'lxml')soup = BeautifulSoup(html, 'html.parser')"--先确定动漫信息,即li标签列表,li class = ret-search-item clearfix --"cosmics = soup.find_all("li",class_="ret-search-item clearfix")for j in range(len(cosmics)):  # 遍历每一个动漫cosmic = cosmics[j]"动漫海报:mod-cover-list-thumb mod-cover-effect ui-db"poster = cosmic.findNext("a")posterImgTag = poster.findNext("img")posterImgUrl = posterImgTag.get("data-original")print("posterImgUrl ",posterImgUrl)"动漫详情 URL"cosmicTag= cosmic.findNext("a",class_="ret-works-view")cosmicUrl = "https://ac.qq.com/"+ cosmicTag.get("href")"动漫名称:ret-works-title "print("name is", poster.get("title"))"动漫作者:ret-works-author"author = cosmic.findNext("p",class_="ret-works-author")print("author is ", author.text)"动漫描述:ret-works-decs"desc = cosmic.findNext("p",class_="ret-works-decs")print("desc is ",desc.text)print()# 启动两个线程获取页面数据
for i in range(1,100,2):  # 遍历网页1-101url1 = "https://ac.qq.com/Comic/index/page/" + str(i)url2 = "https://ac.qq.com/Comic/index/page/" + str(i + 1)thread1 = threading.Thread(target=parsePage, args=(url1, i)) thread2 = threading.Thread(target=parsePage, args=(url2, i + 1))thread1.start()thread2.start()

运行结果

编码启示录

首先,有个大疑惑就是解析文本的时候, soup = BeautifulSoup(html, 'html.parser')soup = BeautifulSoup(html, 'lxml') 有什么区别呢?

最初参考的代码,用的是 lxml ,selectclass 解析不到东西,再改成 html.parserfind 方法可以正常解析了。

答案是,解析器不同:

  • html.parser,内置,不需要额外的依赖项。
  • html5lib,最宽大,如果HTML损坏,最好使用它。
  • lxml,最快,依赖外部 C 。

其次,Python 解析页面还是挺好定位的。

今天先完成基础信息的获取,下一步的完善目标是生成 DataFrame 数据,写入 Excel 表格,同时获取全部的动漫图片。

2022 年,把 Python 学得跟 Java 一样熟练——06 获取 \u817e\u8baf\u0020 Cosmic相关推荐

  1. 新手学java还是python知乎_编程初学者应该先学C++、Java还是Python?

    最近,看到这样的一个话题:"打算自学编程,但是不知道该先学哪门语言入门?编程初学者应该先学C++.Java还是Python?",作为一个新手,应该学什么语言入门比较好呢?相信这是困 ...

  2. python和java的区别-Java和Python的区别 学Python语言好还是Java好

    原标题:Java和Python的区别 学Python语言好还是Java好 相信不少想学编程的人都在纠结到底学Java好还是学Python,毕竟当下正是Python的火热时期,然而Java也同样占据编程 ...

  3. python web前端 java ui学哪个好_学IT选Java还是Python?就业发展有何区别?

    学IT选Java还是Python?就业发展有何区别? 来源:奇酷学院 发表于:2018-09-27 10:14:35 想了解一个语言就业到底好不好,得先明确语言的发展方向. 很多学员在选择专业上遇着难 ...

  4. 编程初学者应该先学C++、Java还是Python?

    语言推荐: 第一大类语言包括Java.C.Python和C++. 这类语言都是非常通用的语言,它们并不局限于特定的编程平台或用途.(无疑问,你应该熟悉这四种语言.) 第二大类语言包括Java.C#.P ...

  5. 会python再学java要多久_【学过python多久能学会java】廖雪峰python教程要学多久

    自学完廖雪峰python可以找到相关工作吗? 如果只是学完廖雪峰的教程我觉得是不够的,你必须对一些方面有更加深入的实践和学习.我是工作中需要用到python,看了廖雪峰的教程,实现快速开发. 学过py ...

  6. 中国地质大学(北京) 研究生 2022秋《Python科学计算》期末考试 模拟题2 题目+参考答案

    另一套模拟题1: 期末考试 模拟题1 考试方法 浏览器(Chrome.火狐)登录PTA网址: pintia.cn,单击右上角"登录->考试登录",下拉菜单输入cugb 选择& ...

  7. 中国地质大学(北京) 研究生 2022秋《Python科学计算》期末考试 模拟题1 题目+参考答案

    另一套模拟题2: 期末考试 模拟题2 考试方法 浏览器(Chrome.火狐)登录PTA网址: pintia.cn,单击右上角"登录->考试登录",下拉菜单输入cugb 选择& ...

  8. 什么样的python程序员好找工作-Python学到什么程度才可以去找工作?掌握这4点足够了!...

    大家在学习Python的时候,有人会问"Python要学到什么程度才能出去找工作",对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来 ...

  9. python学到什么程度可以做兼职-Python学到什么程度才可以去找工作?掌握这4点足够了!...

    大家在学习Python的时候,有人会问"Python要学到什么程度才能出去找工作",对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来 ...

最新文章

  1. Enhanced-RCNN: 一种高效的比较句子相似性的方法 |​WWW 2020
  2. 如何修改Exchange邮件报警信息
  3. PF_PACKET和AF_PACKET
  4. ListView属性设置
  5. Python读取大文件的坑“与内存占用检测
  6. Rails + React +antd + Redux环境搭建
  7. CentOS/Linux 卸载MATLAB
  8. Word 参考文献的自动修改
  9. 一图胜千言:用好图表,好好说话
  10. RINEX 3.02 版本导航信息文件格式说明
  11. 虚拟机VMware安装PhoenixOS(凤凰OS)进入命令行黑屏页面无法进入图形界面
  12. 蚂蚁金服2019实习生面经总结(已拿口头offer)
  13. 计算机软件毕业论文模板,计算机软件毕业论文提纲模板
  14. 今天是冰桶算法大揭秘!!
  15. 三星s8怎么分屏操作_双屏互动,大有可为 三星Galaxy Z Fold2 5G的魅力折叠体验
  16. 全面的IE兼容性调试问题
  17. 【20考研数学】整体难度如何,有什么特点?
  18. 爬取智联招聘上24座热门城市中Java招聘信息
  19. Visio二次开发(二)----Shape的添加和连接
  20. AndroidQQ5.0模仿

热门文章

  1. unity发布ios高通AR的问题
  2. 咳咳,软工新手读《大道至简》读后感
  3. Win10 IIS Web 配置
  4. python word排版_利用Python-docx 读写 Word 文档中的正文、表格、段落、字体等
  5. pandas 多条件筛选DataFrame
  6. 供水管网漏损监测方案
  7. 通过Python脚本下载【来此加密的免费HTTPS SSL证书】并自动更新到服务器和阿里云CDN
  8. vrrp路由器三种状态_VRRP路由器切换方法、路由器、VRRP主备切换系统及存储介质与流程...
  9. python 京东页码 翻页参数生成方法
  10. java业务逻辑层文档,java业务逻辑层类图