爬虫总结——(1)request使用以及文件存储

爬虫的基本概念就是通过程序来模拟上网冲浪,通过获取整个页面的所有信息,然后用正则表达式或者bs4进行解析,部分获取信息。

在python中,爬虫的很多模块已经构建好了。先来看几个最基本的概念。

  1. url:通俗来说就是要爬取的页面,但由于有些网页是动态加载的,里面的数据不一定是由显示的网址加载的,具体得看该数据的url
  2. UA伪装:我们都基本上使用浏览器来浏览网页,UA就相当于一个浏览器的代号,有些服务器为了防止恶意爬虫,如果不使用UA伪装,会无法爬取该网站的数据
  3. 数据类型:如:text , json 和 content、这这涉及到爬取数据的类型。比如我们如果单单只爬取一整个页面,一般是一个html的text文档,而如果我们爬取的是一张图片,学过计算机的同学一定了解,图片是以二进制文件存储的。

在爬虫的开始,一般我们都会先对页面进行分析,观察数据的类型以页面的参数。比如我们来看一下搜狗翻译页面的参数

在这里插入图片描述
在这里插入图片描述

可以看到该页面抓包后,分析到数据的url,数据类型是json,json中参数data的各个值。我们可以通过修改参数来爬取相应的数据。下面来看一个简单的爬取豆瓣电影数据。

#豆瓣电影爬取

import requests
import json

if __name__ == '__main__':
    url = 'https://movie.douban.com/j/chart/top_list'
    #进行UA伪装的header
    headers = {
        "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
    }
    param = {
        'type': '24',
        'interval_id' : '100:90',
        'action': '',
        'start': '0', #从库中第几部电影开始去取
        'limit' : '20' #一次取出的个数
    }
    #爬取网页数据
    response = requests.get(url= url , params= param , headers = headers)
    #将网页数据转化为json类型
    list_data = response.json()

    fp = open('./douban.json' , 'w' , encoding= 'utf-8')
    json.dump(list_data , fp= fp , ensure_ascii= False)

    print("over!!!")

在这里插入图片描述

先说一下文件存储的几种方式。

(1)判断有没有一个这样名字的文件,如果没有则创立。其中(./)表示当前目录,建议一般先存在当前目录,方便查找检验。

	#判断是否存在一个叫file的文件夹,如果没有则创立
    if not os.path.exists('./file'):
        os.mkdir('./file')

(2)如果只要一次性把文件储存,可以用with open,这个方法,包含关闭文件。

    with open(fileName , 'w' , encoding = 'utf-8') as fp:
        fp.write(page_text)

(3)或者写成这种格式也可以

	fp = open('./三国演义.txt' , 'w' , encoding='utf-8')
	fp.write(title + ':' + content + '\n')

注意:使用json的dump方法存储时一定要有 ensure_ascii= False , 不然遇到中文会乱码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值