开始你的第一个爬虫程序

爬虫基础

  1. 爬虫:模拟浏览器上网,抓取数据。

  2. www.baidu.com/robots.txt

  3. 常用请求头

    • User-Agent
    • Connection:请求完毕后,是断开还是保持连接
  4. 常用响应头

    • Content-Type:服务器响应回客户端的数据类型
  5. https

    • 安全的超文本传输协议
    • 加密方式:
      • 对称密钥加密
      • 非对称密钥加密
      • 证书密钥加密

requests

  1. 使用:
  • 确定url
  • 发送请求
  • 获取响应数据
  • 存储
  1. get方法

requests.get(url= , params= ,headers= )

params为url参数

headers:UA伪装

  1. post方法

requests.post(url= , data= headers= )

data类似params

  1. json
  • json.dumps()函数是将字典转化为字符串

  • json.dump()函数的使用,将json信息写进文件

  • json.loads()函数是将字符串转化为字典

  • json.load()函数的使用,将读取json信息

    with open('1.json', 'r') as f:
      data = json.load(f)
    
  • 客户端要向服务器端发送一个json字符串,服务器端要接收并处理。下面演示正确的代码:

    import json
    with open('1.json', 'r') as f:
        data = json.load(f)
    data = {"company_data": json.dumps(data)}
     
    # urlopen()的data参数默认为None,当data参数不为空的时候,urlopen()提交方式为Post
    from urllib import request, parse
    url = r'http://192.168.165.4:8000/show/report/'
    company_data = parse.urlencode(data).encode('utf-8')
    req = request.Request(url, data=company_data)
    print(company_data)
    page = request.urlopen(req).read()
    page = page.decode('utf-8')
     
    print('page是什么', page, type(page))
    
  • 接收的话,下面的代码只是接收并打印,并没有进行一系列的判断然后去入库之类的,因为我还没做:

    def receive_data(request):
        if request.method == 'POST':
        print(request.get_full_path())
        print(request.body)
        data = request.POST.get("company_data")
        if data:
            try:
                data = json.loads(data)
                print("企业数据", type(data), data)
                return HttpResponse(data)
            except ValueError as e:
                print(str(e))
        else:
            return HttpResponse("no data")
    

百度翻译

if __name__ == "__main__":

    url = 'https://fanyi.baidu.com/sug'
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'
    }
    word = input('enter a word:\n')
    data = {
        'kw':word
    }
    response = requests.post(url=url, data= data,headers= header)
    dict_ = response.json()
    fileName = word+'.json'
    with open(fileName, 'w', encoding='utf-8') as fp:
        json.dump(dict_,fp=fp, ensure_ascii=False)
    print("over")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值