废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)

这篇具有很好参考价值的文章主要介绍了废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)


前言:我错了,但下次也不一定(●’◡’●)

米娜桑,好久不见,不知道这段时间各位手中的西瓜刀有没有按时擦亮呢?

我也是在摸爬滚打将近一年之后总算是找到了一点人生的方向所以当成救命稻草现在正死死握紧不放手的啊。
这一年真的是经历了很多,发生了很多事,做了很多次选择,但可能我身上已经被锁定了『反向预测』的笨拙诅咒导致走了很多弯路,但好在是好好的活到了出头之日了。
(抽奖的事一直在参与,从未被选中,呜呜呜,岷叔!)
(没错,永恒mc更新啦!!!所以我现在是边看岷叔边写博客,为人民服务!!!)

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)
总之,之后就开始恢复更新了。内容的话更多的会偏向于一些知识的学习笔记。同时也包括一些其他软件的使用教程,mathematicas的使用之后也会继续更新的,敬请期待。

那么思索了很久之后,决定先开始Python爬虫的学习。
因为这对于学(you)习(xi)资源的收集具有很大的帮助,算是Rain氏科技树的根源工具。


教学资源(持续更新…)

本次Python爬虫学习所用的网络资源如下所示,如果有更好的资源还请慷慨分享,谢谢!

1. 【Python+爬虫】爆肝两个月!拜托三连了!这绝对是全B站最用心(没有之一)的Python+爬虫公开课程,从入门到(不)入狱 !


一. 爬虫的基本流程

一般爬虫的基本流程包含三步:获取网页内容解析网页内容存储数据

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)
接下来本篇将主要介绍获取网页内容解析网页内容的相关信息以及如何使用Python中的requests库与BeautifulSoup库完成该工作。


二. 获取网页内容

2.1 相关概念

获取网页内容的基本方式:客户端向服务端发送HTTP请求。

HTTP,全称Hypertext Transfer Protocol,又称超文本传输协议。

当服务端收到请求之后,会向客户端返回一个状态码与其他内容。
以下为常见的响应状态码:

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)

我知道我知道,各位来看我的博客那肯定不是想看这些书本定义的,是想看整活的,我懂得我懂得。
那么接下来,我们就以三国的角度来看一下这些状态码的含义。

首先,我们将发送HTTP请求的客户端,也就是我们,比作是张翼德大将军;
而服务器,则比作是诸葛村夫军师 ;
HTTP请求,就看作是张将军的请战令。
废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)
那么上面的状态码,实际上就和下面的情况类似:

2.1.1 状态码以2开头(例如200)

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)

2.1.2 状态码以3开头(例如301)

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)

2.1.3 状态码以4开头(例如最常见的404)

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)

2.1.4 状态码以5开头(例如500)

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)
HTTP请求在结构上一般包含三个部分:请求行、请求头与请求体,类型上可分为GET请求与POST请求。具体信息如下所示。
废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)

2.2 Python实现—Requests

可以用于实现获取网页内容的方法有很多,这次我们先介绍如何使用requests库进行该工作。

2.2.1 相关库的安装

pip install requests

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)
这里也提供一篇参考文章:requests库的详细安装过程

2.2.2 代码实现

# 发送Http请求
import requests

# 要爬取的网站
url = "https://books.toscrape.com"

# 设置请求头,将爬虫伪装成浏览器身份,反爬措施
# 具体内容请详见B站学习视频
headers = {
	# 这里最好填自己电脑上的,用F12查看
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.41"
}

# 发送Http请求
response = requests.get(url=url, headers=headers)
# 响应码,响应成功为200
print(response.status_code)
# 响应状态,成功为True
print(response.ok)
# 网站内容,类型为字符串
print(response.text)

三. 解析网页内容

3.1 相关概念

在我们成功获取到网站内容之后,便要开始进行数据清洗工作,也就是解析网页内容。

一个网站的内容主要包含三部分:HTML代码、CSS代码与JavaScript代码。而对于我们来说,存储着网页结构与信息的HTML代码相对而言更加具有研究价值。
废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)
所以我们的数据清洗工作也主要是对HTML代码进行处理。

那么接下来,你会觉得我要讲HTML了。抱歉,这个东西我也有点无能为力了,还请参考上面的网络视频。
说起来,我不得不点一位我们学院的老师了。
某些人真的是够够的,一个web课一周就两节课,每次都不来,就让学生自己去机房对着课本敲代码。等到期末了终于看见人影了。
哎,自己肯定也是有问题的。

之后也会有前端学习的内容的,总不能因为别人的不对而阻止自己学习有趣的东西吧。

3.2 Python实现——BeautifulSoup

3.2.1 相关库的安装

pip3 install Beautifulsoup4 

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)
这里也提供一篇参考文章:Python安装Bs4几种方法

3.2.2 代码实现

from bs4 import BeautifulSoup
import requests

url = "https://books.toscrape.com"

# 伪装爬虫, 设置请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.41"
}


def get_response_by_requests(url, headers):
    # 发起Http响应
    response = requests.get(url=url, headers=headers)
    return response

if __name__ == '__main__':
    response = get_response_by_requests(url=url, headers=headers)
    print(f"状态码:{response.status_code}")

    if response.ok:
        print("请求成功")
        # 获取网页的html源码
        html_text = response.text

        # 利用bs处理为树状结构,方便清洗
        # soup为树状结构
        soup = BeautifulSoup(html_text, "html.parser")

        # 先序遍历的第一个p标签内容
        print(soup.p)
        # 先序遍历的第一个img标签内容
        print(soup.img)

        # bs的findall方法
        # 查找网页中所有class属性为price_color的p标签
        all_prices = soup.findAll("p", attrs={"class": "price_color"})

        #Type : <class 'bs4.element.ResultSet'>
        print(f"Type:{type(all_prices)}")

        for price in all_prices:
            # price.string:标签包围的文本内容
            print(price.string)

        # 获得所有h3标签元素
        all_titles = soup.findAll("h3")
        for title in all_titles:
            # 获得所有的a标签元素
            all_links = title.findAll("a")
            for link in all_links:
                # 获得a标签包围的文本
                print(link.string)

    else:
        print("请求失败")

我第一次学爬虫时,当时用的解析器是lxml,这里用的是html.parser,建议挑选一个自己用着习惯的来。

相关资料:Beautiful Soup的用法(六):解析器的选择


四. 后话

练习的代码我没有放出来,是因为之前发过一个爬取链家房源的博客结果被下架了,再加上我这天天嚯嚯豆瓣给我封了好几次ip,我也不太敢搞了,所以还请自行尝试。

这一年下来热情什么的也有些被磨平了,再加上最近写论文导致可能写作风格和之前差异较大了,还请见谅。
但我仍然在努力保留着这一小团热情的火种,坚持下去。
任重而道远吧。


中二少年的日常

I stand upon my desk to remind myself that we must constantly look at things in a different way.

Just when you think you know something,you have to look at it in another way.Even though it may seem silly or wrong,you must try.

You must strive to find your own voice.Because the longer you wait to begin,the less likely you are to find it at all.

Thoread said,"Most men lead lives of quiet desperation."Don’t be resigned to that.Break out.

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)


吾日三省吾身:日更否?思考否?快乐否?
更新了,但不是日更;我思故我在;fine.
路漫漫其修远兮,吾将上下而求索。

废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)文章来源地址https://www.toymoban.com/news/detail-479920.html

到了这里,关于废柴日记8:从入门到入狱的Python爬虫学习笔记1(入门篇)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫学习笔记(二)————爬虫简介

    目录 1.爬虫概念 2.爬虫核心 3.爬虫分类  通用爬虫 聚焦爬虫 4.反爬手段 (1)User‐Agent (2)代理IP (3)验证码访问 (4)动态加载网页 (5)数据加密 1.爬虫概念 通过一个程序,根据Url(http://www.taobao.com)进行爬取网页,获取有用信息。 使用程序模拟浏览器,去向服务器发送

    2024年02月15日
    浏览(42)
  • 编程小白的自学笔记九(python爬虫入门+代码详解)

    编程小白的自学笔记八(python中的多线程) 编程小白的自学笔记七(python中类的继承)   编程小白的自学笔记六(python中类的静态方法和动态方法)  编程小白的自学笔记五(Python类的方法)  编程小白的自学笔记四(正则表达式模块search函数)  目录 系列文章目录 前言

    2024年02月16日
    浏览(45)
  • 编程小白的自学笔记十(python爬虫入门二+实例代码详解)

    编程小白的自学笔记九(python爬虫入门+代码详解) 编程小白的自学笔记八(python中的多线程)   编程小白的自学笔记七(python中类的继承)  编程小白的自学笔记六(python中类的静态方法和动态方法) 编程小白的自学笔记五(Python类的方法)  目录 系列文章目录 前言 一

    2024年02月16日
    浏览(41)
  • Python爬虫学习笔记(七)————Selenium

    目录 1.什么是selenium? 2.为什么使用selenium? 3.selenium安装 4.selenium的使用步骤 5.selenium的元素定位 6.访问元素信息 7.交互 1.什么是selenium? (1)Selenium是一个用于Web应用程序测试的工具。 (2)Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。 (3)支持通过各种

    2024年02月16日
    浏览(36)
  • Python爬虫学习笔记(一)————网页基础

    目录 1.网页的组成 2.HTML (1)标签 (2)比较重要且常用的标签: ①列表标签 ②超链接标签 (a标签) ③img标签:用于渲染,图片资源的标签 ④div标签和span标签 (3)属性 (4)常用的语义化标签 (5)元素的分类及特点 ①块元素 ②行内元素 ③行内块元素 (6)文件路径 (

    2024年02月15日
    浏览(52)
  • Python爬虫学习笔记(三)————urllib

    目录 1.使用urllib来获取百度首页的源码 2.下载网页图片视频  3.总结-1 4.请求对象的定制(解决第一种反爬)   5.编解码 (1)get请求方式:urllib.parse.quote() (2)get请求方式:urllib.parse.urlencode() (3)post请求方式 6.ajax的get请求 (1)获取豆瓣电影的第一页的数据 (2)下

    2024年02月16日
    浏览(37)
  • 最简单的python爬虫案例,适合入门学习

    用python从网页爬取数据,网上相关文章很多,但能让零基础初学者轻松上手的却很少。可能是有的作者觉得有些知识点太简单不值得花费精力讲,结果是难者不会会者不难,初学者常常因此而蒙圈。本人也是小白,刚摸索着爬了两个简单的网页数据,经历了初学者易犯的各种

    2024年02月08日
    浏览(42)
  • Python爬虫学习笔记(四)————XPath解析

    目录 0.xpath最新下载地址和安装教程 1.xpath安装 2.xpath基本使用 3.xpath基本语法 4.实例 (1)xpath解析本地文件  (2)xpath解析服务器响应的数据 ①获取百度网站的“百度一下”四个字 ②获取站长素材网站情侣图片前十页的图片 0.xpath最新下载地址和安装教程 https://blog.csdn.net/

    2024年02月16日
    浏览(50)
  • python萌新爬虫学习笔记【建议收藏】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章

    2024年02月08日
    浏览(48)
  • Python爬虫学习笔记(五)————JsonPath解析

    目录 1.JSONPath —— xpath在json的应用 2.JSONPath 表达式 3.jsonpath的安装及使用方式 4.jsonpath的使用 5.JSONPath语法元素和对应XPath元素的对比 6.实例  (1)商店案例 (2) 解析淘票票的“城市选择”数据 1. JSONPath —— xpath在json的应用 xml最大的优点就有大量的工具可以分析,转换,

    2024年02月17日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包