1、原理介绍
2、代码实现
3、优化改进
4、总结
1、原理介绍
利用网站结构的弱点,更轻松地访问内容。
下面是一些示例国家(或地区)的URL
1、http://example.python-scraping.com/view/Afghanistan-1
2、http://example.python-scraping.com/view/Australia-2
3、http://example.python-scraping.com/view/Brazil-3
可以看出,这些URL只在URL路径的最后一部分有区别,包括国家(或地区)名(作为页面别名)和ID。在URL中包含页面别名是非常普遍的做法,可以对搜索引擎优化起到帮助作用。一般情况下,Web服务器会忽略这个字符串,只是用ID来匹配数据库中的相关记录。
http://example.python-scraping.com/view/1
示例网站中的链接仍然可用,网页依然可以加载成功。
2、代码实现
忽略页面别名,只利用数据库ID来下载所有国家(或地区)的页面
import itertools
def crawl_site(url,max_errors=5):
for page in itertools.count(1):
pg_url = '{}{}'.format(url,page)
html = download(pg_url)
if htm