爬取汽车之家新闻

爬取汽车之家新闻

  •  伪造浏览器向某个地址发送Http请求,获取返回的字符串
    • response = requests.get(url = '地址')
    • response.content
    • response.encoding = apparent_encoding
    • response.text
  • bs4,解析HTML格式的字符串
    • soup = BeautifulSoup('<html>...</html>', "html.parser")
    • soup.find(name='标签名')
    • soup.find(name='标签名', id='il')
    • soup.find(name='标签名', _class='il')
    • soup.find(name='div', attrs={'id': 'auto-channel-lazyload-article', 'class': 'id'})

 

一、下载页面

首先抓取要爬的页面

import requestsret = requests.get(url="https://www.autohome.com.cn/news/")

此时print(ret)返回的是一个对象: <Response [200]> 

然后再print(ret.content)输出如下:

上图看出返回的是整个网页文本,不过是以字节形式的文本。

 这不是我们需要的,接着再改用print(ret.text)输出如下:

此时,出现了恶心的乱码!!!,我们再用encoding对ret进行编码:

ret.encoding = 'gbk'

这样可能不是很智能,那我们可以换一种方式:

ret.encoding = ret.apparent_encoding

在这里,print(ret.apparent_encoding)可以自动获取网页的编码格式。此时print(ret.text)已经能正常显示网页了:

 二、解析:获取想要的指定内容

此时我们分析汽车之家新闻页面:

初步判断,新闻部分位于id为"auto-channel-lazyload-article"的div下面的li标签中,之所以选择id是因为class名称可能不是唯一的,不好用于过滤

此时,我们需要在py文件头部导入bs4模块,这个模块主要用来帮我们解析整个html页面,相当于正则表达式的功能

from bs4 import BeautifulSoup

 用html解析器对网页进行解析

soup = BeautifulSoup(ret.text, 'html.parser')

我们用print(type(soup))输出soup的类型得到: <class 'bs4.BeautifulSoup'> ,可以看出soup由文本变成对象了。

 提取出新闻所在的div:

div = soup.find(name='div',id='auto-channel-lazyload-article')

我们先print(div)查看下结果:

然后再对这个div对象进行二次解析,我们最终要拿到里面的li,用find_all找所有的li

li_list = div.find_all(name='li')

再次print(li_list)输出:

可以看出li_list已经是一个列表了。我们需要先找出里面的h3标签

for li in li_list:h3 = li.find(name='h3')

print(h3)查看下h3标签

可以看出上图有一个为None的地方,我们返回网页查看源码

目测这里应该是一个广告位,这里我们可以采取if判断直接过滤掉

for li in li_list:h3 = li.find(name='h3')if not h3:continueprint(h3)

在这里h3是一个对象,我们最终需要得到h3的文本

print(h3.text)

目前我们只是取得了每个li标签的新闻标题,再获取新闻正文和超链接

for li in li_list:h3 = li.find(name='h3')if not h3:continueprint(h3.text)p = li.find(name='p')print(p.text)a = li.find('a')    # 不写name默认取第一个aprint(a.attrs)  # attrs拿取所有属性

对输出进行优化:

    print(h3.text, a.get('href'))print(p.text)print('\n')

我们顺便爬下图片吧

    img = li.find('img')# print(img)src = img.get('src')# print(src)file_name = src.rsplit('__', maxsplit=1)[1]# print(file_name)ret_img = requests.get(url='https:' + src)with open(file_name, 'wb') as f:f.write(ret_img.content)print('\n')

此时在自己当前路径下,已经下载了很多图片

 

转载于:https://www.cnblogs.com/Black-rainbow/p/9214707.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac OS使用技巧之五:Macbook键盘的使用基础技巧

使用过苹果电脑的朋友应该都知道苹果的台式机和笔记本键盘布局有自己独有的风格&#xff0c;Mac里面的键盘细节就值得我们深深推敲。这篇博客将为一些Mac的新手&#xff0c; 详细介绍一下苹果电脑键盘的基础使用技巧&#xff0c;笔者目前的系统是Mac mavericks。Mac OS按键符号…

需求工程week1

这是第一周&#xff0c;我们小组确定了项目工程的主题&#xff0c;对于需求不清楚的地方与甲方进行了沟通。简单制定了下一周的工作计划。 以下是详细说明&#xff1a; &#xff08;1&#xff09;项目背景和范围 ①背景&#xff1a;在急需志愿活动的今天&#xff0c;在部分个人…

3- 快速上手Linux玩转典型应用- Linux准备工作

4- 准备工作 查看ip ifconfig # 查看ip地址 ipaddr # ip vi /etc/sysconfig/network-scripts/ifcfg-xxyum install net-tools最小化安装的server版本没有ifconfig。使用ip addr tab补全键一次补全。两次提示。 使用pageup pagedown键&#xff0c;翻动。 编辑我们的配置文件将o…

Mac OS使用技巧之六:鼠标和触摸板的使用

本篇说一下Macbook里面鼠标和触摸板的使用&#xff0c;如果你的电脑是台式机&#xff0c;那么使用触摸板可能需要你自己配备Magic Trackpad。在我看来&#xff0c;Mac OS的日常使用基本是不需要鼠标的。Mac OS与触摸板的完美契合是windows系统永远无法企及的。但不排除有些情况…

go run 和 go build 和 go install 命令区别

go run&#xff1a; go run 编译并直接运行程序&#xff0c;它会产生一个临时文件&#xff08;但实际不存在&#xff0c;也不会生成 .exe 文件&#xff09;&#xff0c;直接在命令行输出程序执行结果&#xff0c;方便用户调试。 注意点&#xff1a;需要在main包下执行go run &a…

Mac OS使用技巧之七:个性化自己的Mac OS主界面

今天来讲一下个性化自己的主界面。Mac OS的亮点之一就在于它精炼美观的主界面。 Mac OS的界面跟我们熟悉的windows是截然不同的&#xff0c;赋予了桌面新的定义。 能够完美的体现一张牛X的壁纸是有多么的吸引人。&#xff08;图不是我盗的哦&#xff0c;第一张图片加了自己水…

Google的“机器人情结”:两次合计36亿美元的人工智能收购

据Re/code1月27日消息&#xff0c;Google将收购&#xff08;据知情人透露约4亿美元&#xff0c;未经证实&#xff09;一家人工智能公司DeepMind。DeepMind公司位于英国伦敦&#xff0c;由神经系统科学家DemisHassabis、网络语音通讯软件Skype开发者JaanTallin和研究人员ShaneLe…

Mac OS使用技巧之八:Dock栏使用技巧

本篇博客&#xff0c;我们来讲一下Mac OS的标志性的东西————Dock。在我们的第七篇系列博客里面已经提及了神秘强大的Dock栏。这是苹果的一大亮点。Dock中间偏右侧有一条浅浅的分割线。分割线左侧是APP的图标&#xff0c;在运行的下面会有白色光点。分割线右侧是堆栈&#x…

Mac OS使用技巧之九:Mission Control和DIY自己的Dashboard

一、Mission Control使用技巧Mac OS X为我们提供了更加无缝和流畅的多桌面、应用管理和切换&#xff0c;Mission Control。之前的教程里面也提到过。触摸板四指向上平移&#xff08;可以在系统偏好里面设成三指&#xff09;&#xff0c;就可以调出高端大气的Mission Control。包…

【NOIP必备攻略】 基本noilinux使用方法

现在linux系统已经成为了NOIP竞赛的一大操作系统&#xff0c;如果连最基础的操作都不会&#xff0c;那就更别提怎么得分了&#xff0c;万一操作失误&#xff0c;可就爆零了。所以小编特意发这样一篇博客&#xff0c;教你快速上手noilinux&#xff01; ▎ 常用操作 1&#xff09…

Mac OS使用技巧之十:Finder的详细使用方法

Finder就是Mac OSX中资源管理器&#xff0c;我们用它来管理我们所有的文件。先来说一下Finder的打开方法吧&#xff0c;&#xff08;1&#xff09;单击Dock上的Finder图标。&#xff08;2&#xff09;快捷键为【command】向上方向键或者【command】【N】下面我们来看一下10.9 M…

7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装

2019独角兽企业重金招聘Python工程师标准>>> 7.6.yum更换国内源 自定义yum源&#xff1a; [rootbogon ~]# cd /etc/yum.repos.d [rootbogon yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-CR.repo …

Mac OS使用技巧之十一:隐藏launchpad中图标的方法

开讲前注释&#xff1a;一个逗比公司&#xff1d;adobe公司&#xff0c;成立于1982年&#xff0c;总部位于加利福尼亚。Launchpad是Mac系统的一大特色&#xff0c;借鉴了IOS系统的APP存放方式&#xff0c;图形化的浏览应用程序&#xff0c;而非是在文件中死板的浏览&#xff0c…

MySQL数据库入门到高薪培训教程(从MySQL 5.7 到 MySQL 8.0)

一、MySQL数据库入门到高薪培训视频教程&#xff08;从MySQL5.7到MySQL8.0&#xff09; 本套MySQL学习教程地址&#xff1a; https://edu.51cto.com/course/18034.html 为满足想快速入门学习MySQL的学员&#xff0c;风哥设计一套比较全面的MySQL新手快速入门学习视频课程。 本…

Mac OS使用技巧之十二:解决APP Store更新、下载出错的问题

前面介绍了Mac OSX那么多强大的功能和各式各样的使用技巧&#xff0c;那么苹果系统有没有让人头疼的地方呢&#xff1f;恐怕APP Store的下载问题一直是困扰许多用户的永恒问题&#xff0c;为什么有的时候就可以下&#xff0c;为什么有的时候就不可以下&#xff1f;可能是因为网…

Mac OS使用技巧之十三:Finder中标记的使用

我们直入主题&#xff0c;在Mac系统中&#xff0c;我们可以为文件添加不同颜色、不同数量的标记来强调其重要性或者表示其种类 &#xff08;现在说的标记&#xff0c;就是以前版本里面的标签&#xff0c;觉得没有以前版本的标记明显&#xff0c;好看&#xff09;如下图&#x…

Spring mvc 上下文初始化过程

为什么80%的码农都做不了架构师&#xff1f;>>> 在软件开发的中&#xff0c;如果某些特性的使用比较普遍&#xff0c;那么这些特性往往可以作为平台特性来实现&#xff0c;通过对这些平台特性进行有效的封装&#xff0c;使其向其他应用开放。正是如此&#xff0c;S…

经典七大排序算法

经典排序算法在面试中占有很大的比重&#xff0c;也是基础&#xff0c;为了未雨绸缪&#xff0c;在寒假里整理并用Python实现了七大经典排序算法&#xff0c;包括冒泡排序&#xff0c;插入排序&#xff0c;选择排序&#xff0c;希尔排序&#xff0c;归并排序&#xff0c;快速排…

谁能给我讲讲原理——视频弹幕游戏!!

舍友在一个叫BliBli的视频网站上找到这样一个视频弹幕游戏&#xff0c;说实话我当时一看真的惊呆了。 从来没有见过这种能够互动的、充满游戏性的视频&#xff0c;用户WASD可以控制飞机移动躲避字幕&#xff0c;撞到字幕左上角死亡次数还可以计数&#xff0c;字幕还并不是单一…

Adobe——我欠你一个正版

昨天&#xff0c;2014年9月24日&#xff0c;Adobe公司宣布关闭中国研发分公司。微博截图如下。 不知道为什么自己看到这个微博&#xff0c;心里很不舒服&#xff0c;一方面是因为Adobe中国研发分公司的关闭&#xff0c;势必会影响中国设计和研发人才的培养&#xff0c;公司解散…