ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python编程快速上手-从Web抓取信息

2022-05-04 09:00:54  阅读:175  来源: 互联网

标签:status Web http raise get Python res 抓取 requests


利用webbrowser模块

   webbrowser模块的open()函数可以启动一个新浏览器

>>> import webbrowser
>>> webbrowser.open('http://www.baidu.com/')
True

 

用requests模块从Web下载文件

用requests.get() 函数下载一个网页

>>> import requests
>>> res = requests.get('http://www.gutenberg.org/cache/epub/1112/pg1112.txt')
>>> type(res)
<class 'requests.models.Response'>
>>> len(res.text)
179380
>>> print(res.text[:250])
The Project Gutenberg EBook of Romeo and Juliet, by William Shakespeare


*******************************************************************
THIS EBOOK WAS ONE OF PROJECT GUTENBERG'S EARLY FILES PRODUCED AT A
TIME WHEN PROOFING METHODS AND TOO

检查错误

>>> res = requests.get('http://inventwithpython.com/page_that_does_not_exist')
>>> res.raise_for_status()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python37\lib\site-packages\requests\models.py", line 960, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http://inventwithpython.com/page_that_does_not_exist
>>>

  可以用try 和 except 语句将raise_for_status() 代码行包裹,处理这个错误,不让程序崩溃

import requests
res = requests.get('http://inventwithpython.com/page_that_does_not_exist')
try:
  res.raise_for_status()
except Exception as exc:
  print('There was a problem: %s' % (exc))

将下载的文件保存在磁盘

>>> import requests
>>> res = requests.get('http://www.gutenberg.org/cache/epub/1112/pg1112.txt')
>>> res.raise_for_status()
>>> playFile = open('RomeoAndJuliet.txt', 'wb')
>>> for chunk in res.iter_content(1000000):
...   playFile.write(chunk)
...
179382
>>>
>>> playFile.close()
>>>
>>>

  

 

标签:status,Web,http,raise,get,Python,res,抓取,requests
来源: https://www.cnblogs.com/helon/p/16220344.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有