【Python 爬虫】简单的网页爬虫

这边有一个用来测试的网站点击跳转

requests的使用

requestsPython的一个第三方HTTPHypertext Transfer Protocol,超文本传输协议)库,它比Python自带的网络库urllib更加简单、方便和人性化。使用requests可以让Python实现访问网页并获取源代码的功能。

使用requests获取网页的源代码,最简单的情况下只需要两行代码:

#使用requests获取源代码
import requests
source = requests.get('https://www.baidu.com').content.deocde()

使用requests获取网页的源代码

使用浏览器来访问网页,看起来只需要输入网址就可以。但其实网页有很多种打开方式,最常见的是GET方式和POST方式。

在浏览器里面可以直接通过输入网址访问的页面,就是使用了GET方式。

还有一些页面,只能通过从另一个页面单击某个链接或者某个按钮以后跳过来,不能直接通过在浏览器输入网址访问,这种网页就是使用了POST方式。


GET方式

  • 对于使用GET方式的网页,再Python中可以使用requestsget方法获取网页的原码

    url = 'https://www.baidu.com'
    html = requests.get(url)
    html_text = html.text()
    html_bytes = html.content
    html_str = html_bytes.decode()
    
  • html是全部的网页数据

  • content是将数据转换成二进制数据,一般用于读取图片数据

  • text是将数据转换成网页自己编码的字符串,一般用于读取文字数据

  • decode将数据从二进制转换成字符串


POST方式

  • 网页的访问方式除了GET方式以外,还有POST方式。有一些网页,使用GETPOST方式访问同样的网址,得到的结果是不一样的。还有另外一些网页,只能使用POST方式访问,如果使用GET方式访问,网站会直接返回错误信息。

    在这里插入图片描述

    import requests
    
    url = 'http://exercise.kingname.info/exercise_requests_post'
    data = {
         
        'name': 'value1',
        'password': 'value2'
    }
    html = requests.post(url, data=data).content.decode()
    
    

    在这里插入图片描述

  • 其中,data这个字典的内容和项数需要根据实际情况修改,KeyValue在不同的网站是不一样的。而做爬虫,构造这个字典是任务之一。

  • 还有一些网址,提交的内容需要是JSON格式的,因此post()方法的参数需要进行一些修改:

    import requests
    
    url = 'http://exercise.kingname.info/exercise_requests_post'
    data = {
         
        'name': 'value1',
        'password': 'value2'
    }
    json = {
         
        'name': 'value1',
        'password': 'value2'
    }
    html_data = requests.post(url, data=data).content.decode()
    html_json = requests.post(url, json=data).content.decode()
    

在这里插入图片描述

跳转顶部


requests与正则结合

在上面使用requests我们可以拿到下面的数据

在这里插入图片描述
那我们该如何拿到标题和正文?

import requests
import re

url = 'http://exercise.kingname.info/exercise_requests_get.html'

page = requests.get(url).content.decode()

title = re.search('title>(.*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值