Python教学从零开始——第五天

在如今互联网这么发达的情况下,我们干什么事情最多?

当然是使用APP,跟浏览网页

今天就给大家演示一个如果通过python读取网页源代码的小示例

python读取网页有很多库,但我个人比较侵向于requests这个库,简单好用

首先利用命令行安装requests 库,不出意外的话然后经过下面一大堆的输出就可以安装完成了

PS D:\py_example> pip install requests

Collecting requests

Downloading requests-2.18.4-py2.py3-none-any.whl (88kB)

100% ████████████████████████████████ 92kB 117kB/s

Collecting chardet=3.0.2 (from requests)

Using cached chardet-3.0.4-py2.py3-none-any.whl

Collecting certifi>=2017.4.17 (from requests)

Downloading certifi-2017.11.5-py2.py3-none-any.whl (330kB)

100% ████████████████████████████████ 337kB 339kB/s

Requirement already satisfied: idna=2.5 in d:\software\python36\lib\site-packages (from requests)

Requirement already satisfied: urllib3=1.21.1 in d:\software\python36\lib\site-packages (from requests)

Installing collected packages: chardet, certifi, requests

Successfully installed certifi-2017.11.5 chardet-3.0.4 requests-2.18.4

然后简单几句就可以输出网页的源码了,这对我们将来做一些网页的处理将会非常简单

importrequests

r = requests.get('https://www.python.org')

print(r.text)

当然有些网页会限制浏览器,这个时候你就可以改变你的user-agent去假冒浏览器

比如这个就可以伪造Chrome去访问网站

importrequests

headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36'}

r = requests.get('https://www.baidu.com',headers=headers)

print(r.headers)

其它更多的用法可以参考:http://docs.python-requests.org/en/master/user/quickstart/

但是很多时候我们要用机器访问网页都是需要把内容保存下来,为后面的操作做准备。这个时候就要需要文件操作

文件操作的语法示例如下,不需要导入任何模块,直接写语句就可以

importrequests

headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36'}

r = requests.get('https://www.python.org',headers=headers)

#print(r.headers)

file =open('example.txt','w')

# 'r' : 只读

# 'w' : 写入

# 'x' : 用来创建或者写入一个文件

# 'a' : 追加

# 'r+' : 读写在同一个文件中

file.write(r.text)

file.close()

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171219G04E0400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券