- Python Web Scraping(Second Edition)
- Katharine Jarmul Richard Lawson
- 243字
- 2021-07-09 19:42:45
Downloading a web page
To scrape web pages, we first need to download them. Here is a simple Python script that uses Python's urllib module to download a URL:
import urllib.request
def download(url):
return urllib.request.urlopen(url).read()
When a URL is passed, this function will download the web page and return the HTML. The problem with this snippet is that, when downloading the web page, we might encounter errors that are beyond our control; for example, the requested page may no longer exist. In these cases, urllib will raise an exception and exit the script. To be safer, here is a more robust version to catch these exceptions:
import urllib.request
from urllib.error import URLError, HTTPError, ContentTooShortError
def download(url):
print('Downloading:', url)
try:
html = urllib.request.urlopen(url).read()
except (URLError, HTTPError, ContentTooShortError) as e:
print('Download error:', e.reason)
html = None
return html
Now, when a download or URL error is encountered, the exception is caught and the function returns None.
Throughout this book, we will assume you are creating files with code that is presented without prompts (like the code above). When you see code that begins with a Python prompt >>> or and IPython prompt In [1]:, you will need to either enter that into the main file you have been using, or save the file and import those functions and classes into your Python interpreter. If you run into any issues, please take a look at the code in the book repository at https://github.com/kjam/wswp.
推薦閱讀
- PostgreSQL Cookbook
- Java入門很輕松(微課超值版)
- R語言游戲數(shù)據(jù)分析與挖掘
- Python進(jìn)階編程:編寫更高效、優(yōu)雅的Python代碼
- Test-Driven Machine Learning
- Scala for Machine Learning(Second Edition)
- 硬件產(chǎn)品設(shè)計與開發(fā):從原型到交付
- TypeScript 2.x By Example
- Advanced Python Programming
- 征服C指針(第2版)
- Microsoft XNA 4.0 Game Development Cookbook
- SQL Server 2014數(shù)據(jù)庫設(shè)計與開發(fā)教程(微課版)
- Building E-Commerce Solutions with WooCommerce(Second Edition)
- Mastering MeteorJS Application Development
- Learning PowerShell DSC(Second Edition)