python爬虫入门第一篇(requests 的简单使用)

笔者总觉得第一篇是否应该写个高大上的标题以及作文,思来想去,无奈笔者也只是小菜鸟一枚,还是从初学者必由的入门开始吧。也希望于此可以和各位共同进步。

  程序员总是喜欢直接切入正题,笔者也不说闲话,让我们首先一起学习如何展翅,以期在之后的翱翔。若有错误,希望大家多多指出,共同探讨!

  首先第一个问题,所谓爬虫,亦即Spider,就是我们要制造出一个像蜘蛛一样,能够感知网上我们所要获取的数据(蜘蛛的猎物)所在何方,并且准确快速的定位到其所在的方位,并绕过各种可能遇到的困难去拿下该数据。先来看一个最简单的爬虫: 

# -*- coding: utf-8 -*-

import requests
from bs4 import BeautifulSoup


# 对百度首页发起请求
response = requests.get("https://www.baidu.com")
# 将请求到的信息转化为文本
html = response.text
# 利用解析器进行解析
soup = BeautifulSoup(html, 'html.parser')
# 将百度页面的标题输出
print(soup.title)

      就这样,首先认识了 Requests 这个库,用该库请求网页后(request),然后收到服务端所送来的响应源码(response),然后就可以离开互联网开始解析工作,就是从源码上定位数据,我最开始接触了BeautifulSoup(个人用着不太习惯),现在用得最多的是Xpath,偶尔用下CSS选择器。介绍到此入门也就可以了,下面就到了码代码时刻,由于笔者码代码能力亟待提高,索性直接手动码上:

# -*- coding: utf-8 -*-
"""首先要表明该文件的编码形式"""

import requests  # 导入requests库
from requests.exceptions import ReadTimeout
from lxml import etree


# 请求尝试得到网页源码
def get_page_source(url):
    # 捕捉超时异常
    try:
        response = requests.get(url, timeout=0.5)  # 设置超时时间
    except ReadTimeout:
        print("请求超时")
        return None
    else:
        # 加入判断若得到状态码为200,则表示请求成功并返回网页源码
        if response.status_code == 200:
            return response.text
        return None


# 解析得到源码并尝试得到所需信息,此处使用xpath解析工具
def parse_page_source(html):
    selector = etree.HTML(html)
    content = ''.join(selector.xpath("//title/text()"))
    print(content)


# 定义主方法
def main():
    url = "https://www.baidu.com"
    html = get_page_source(url)
    parse_page_source(html)


# 运行主方法得到百度标题
if __name__ == "__main__":
    main()

    运行以上代码后,打印出的结果应该是:"百度一下"这几个字。

ps:以上代码中有几个小知识点,各位可自行百度或者等待笔者后期梳理更新。若有错误,恳请指正。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值