爬虫——练习-爬取一定范围内的页面数据

爬虫——练习-爬取一定范围内的页面数据_第1张图片
爬取前三页的数据
第一次写的代码:

# 综合项目实战:爬取搜狗,知乎某一词条对应的某一范围页码的数据
# 分析下爬取第一页的url和第二页的url,get请求参数中只有page在变,把url固定,变量封装

import requests

url='http://zhihu.sogou.com/zhihu?'
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
}

for page in range(1,3):

    params={
        'query':'人工智能',
        'page':page,
        'ie':'utf-8'    
    }

    response = requests.get(url=url,params=params,headers=headers)
    page_data = response.text
    with open(str(page)+ '.html','w',encoding='utf-8') as f:
        f.write(page_data)

+os模块的操作,最终版本:

import requests
import os

# 创建一个文件夹
if not os.path.exists('./pages'):
    os.mkdir('./pages')

# 搜索词条
word = input('enter a word')

# 动态指定页码的范围
start_page = int(input('enter a start pageNum:'))
end_page = int(input('enter a end pageNum'))

# 1.指定url--设计成一个具有通用的url
url = 'http://zhihu.sogou.com/zhihu'

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}

# 循环取页面值 -- page 
for page in range(start_page,end_page+1):
    params = {'query':word,'page':page,'ie':'utf-8'}
    response = requests.get(url=url,params=params,headers=headers)
    
    # 获取响应中页面数据(指定页码(page))
    page_text = response.text
    
    # 进行持久化处理
    fileName = word+str(page)+'.html'
    filePath = 'pages/'+fileName
    with open(filePath,'w',encoding='utf-8')as f:
        f.write(page_text)
        print(f"第{page}页数据写入成功")

你可能感兴趣的:(爬虫基础练习,爬虫)