首页 > 其他分享 >网络爬虫之requests模块

网络爬虫之requests模块

时间:2022-10-26 19:22:57浏览次数:40  
标签:wb4 list 爬虫 date 模块 pip home requests

  • 第三方模块的下载与使用
  • 网络爬虫模块之requests模块
  • 网络爬虫实战之爬取链接二手房数据
  • 自动化办公领域之openpyxl模块
  • 第三方模块的扩展(模块叠模块)

网络爬虫之小实战

    import requests
    import re

    res = requests.get('http://www.redbull.com.cn/about/branch')
    # print(res.text)
    date = res.text
    # print(res.text)
    l1 = re.findall('<h2>(.*?)</h2>', date)  # 分公司名字
    l2 = re.findall("<p class='mapIco'>(.*?)</p>", date)  # 分公司地址
    l3 = re.findall("<p class='mailIco'>(.*?)</p>", date)  # 分公司邮编
    l4 = re.findall("class='telIco'>(.*?)</p>", date)  # 分公司电话
    ret = zip(l1, l2, l3, l4)
    for i in ret:
        print("""
        分公司名称:%s
        分公司地址:%s
        分公司邮编:%s
        分公司电话:%s
        """ % i)
"""
网络爬虫没有我们现在接触的那么简单 
	有时候页面数据无法直接拷贝获取
	有时候页面还存在防爬机制 弄得不好ip会被短暂拉黑
"""

第三方模块的下载与使用

第三方模块:别人写的模块 一般情况下功能都特别强大

使用第三方模块,第一必须要先下载后面才可以使用

下载第三方模块的方式:
	1.pip工具
   	 注意每个解释器都有pip工具,如果我们的电脑上有多个版本的解释器那么我们在使用pip的时候一定要注意到底用的是哪一个,否则极其容易出现使用的是A版本解释器,然后用B版本的pip下载模块
    为了避免pip冲突 我们在使用的时候可以添加对应的版本号
    	   python27			 pip2.7
     	  python36			pip3.6
         python38			pip3.8
	下载第三方模块的句式
    	pip install 模块名
   	下载第三方模块临时切换仓库
    	pip install 模块名 -i 仓库地址
    下载第三方模块指定版本(不指定默认是最新版)
    	pip install 模块名==版本号 -i 仓库地址
 	2.pycharm提供快捷方式
    setting--project:创建的文件名--python interpreter
"""
下载第三方模块可能会出现的问题:
1.报错并有警号信息
	WARNING:You are using pip version 20.2.1
	原因是pip版本过低,只需要拷贝后面的命令执行更新操作即可
	d:\python38\python.exe -m pip install --upgrade pip
	更新完成后再次执行下载第三方模块的命令即可
2.报错并含有Timeout关键字
	说明当前计算机网络不稳定,只需要换网或者重新执行几次即可
3.报错并没有关键字
	百度搜一下
		pip下载XXX报错:拷贝错误信息
	有的模块需要用户提前准备好一些环境才可以顺利下载
4.下载速度很慢
	pip默认下载的仓库地址是国外的 python.org
		我们可以切换下载的地址
		pip install 模块名 -i 仓库地址
		pip的仓库地址有很多 百度查询即可
		清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/
		阿里云:http://mirrors.aliyun.com/pypi/simple/
		中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
		华中科技大学:http://pypi.hustunique.com/
		豆瓣源:http://pypi.douban.com/simple/
		腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
		华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/
"""

网络爬虫模块之requests模块

requests模块能够模拟浏览器发送网络请求

import requests

1.超指定网址发送请求获取页面数据(等价于:在浏览器输入网址回车访问)
res = requests.get('http://www.redbull.com.cn/about/branch')
print(res.content)  # 获取bytes类型的网页数据(二进制) 
res.enconding = 'utf8'  # 指定编码
print(res.text)  # 获取字符串类型的网页数据(默认按照utf8)

网络爬虫实战之爬取链家二手房数据

import requests
import re

res = requests.get('https://sh.lianjia.com/ershoufang/pudong/')
date = res.text
home_title_list = re.findall(
    '<a class="" href=".*?" target="_blank" data-log_index=".*?" data-el=".*?" data-housecode=".*?" data-is_focus="" data-sl="">(.*?)</a>',
    date)
# print(home_title_list)
home_name_list = re.findall('<a href=".*?" target="_blank" data-log_index=".*?" data-el="region">(.*?) </a>', date)
# print(home_name_list)
home_street_list = re.findall(
    '<div class="positionInfo"><span class="positionIcon"></span><a href=".*?" target="_blank" data-log_index=".*?" data-el="region">.*? </a>   -  <a href=".*?" target="_blank">(.*?)</a> </div>',
    date)
home_info_list = re.findall('<div class="houseInfo"><span class="houseIcon"></span>(.*?)</div>', date)
home_watch_list = re.findall('<div class="followInfo"><span class="starIcon"></span>(.*?)</div>', date)
# print(home_watch_list)
home_total_price_list = re.findall(
    '<div class="totalPrice totalPrice2"><i> </i><span class="">(.*?)</span><i>万</i></div>', date)
# print(home_total_price_list)
home_unit_price_list = re.findall(
    '<div class="unitPrice" data-hid=".*?" data-rid=".*?" data-price=".*?"><span>(.*?)元/平</span></div>', date)
# print(home_unit_price_list)
home_data = zip(home_title_list, home_name_list, home_street_list, home_info_list, home_watch_list,
                home_total_price_list, home_unit_price_list)
with open(r'home_date.txt', 'w', encoding='utf8') as f:
    for data in home_data:
        print("""
        房屋标题:%s
        小区名称:%s
        街道名称:%s
        详细信息:%s
        关注程度:%s
        房屋总价:%s
        房屋单价:%s
        """ % data)
        f.write("""
                房屋标题:%s
                小区名称:%s
                街道名称:%s
                详细信息:%s
                关注程度:%s
                房屋总价:%s
                房屋单价:%s\n
                """ % data)

自动化办公领域之openpyxl

1.excel文件的后缀名问题
	03版本之前
    	.xls
 	03版本之后
2.操作excel表格的第三方模块
	xlwt往表格中写入数据、wlrd从表格中读取数据
    	兼容所有版本的excel文件
 	openpyxl最近几年比较火热的操作excel表格的模块
    	03版本之前的兼容性较差
	ps:还有很多操作excel表格的模块 甚至涵盖了上述的模块>>>:pandas   

创建、保存文件

    from openpyxl import Workbook

    '创建一个excel文件'
    wb = Workbook()
    # 保存excel文件
    wb1 = wb.create_sheet('学生名单')
    wb2 = wb.create_sheet('美女名单')
    wb3 = wb.create_sheet('海王名单')
    wb4 = wb.create_sheet('富婆名单', 0)  # 修改默认的工作簿位置到首个
    wb4.title = '白丝名单'  # 二次修改工作簿名称
    '保存我们创建的wb文件,命名111.xlsx'
    wb.save(r'111.xlsx')

填写数据

    # 填写数据的方式1
    # wb4['F4'] = 666  # 在wbd的工作簿F4的位置填写666
    # 填写数据的方式2
    # wb4.cell(row=3, column=1, value='jason')  # 在第三行第一列填写数据jason
    # 填写数据的方式3
    wb4.append(['姓名', '姓名', '年龄', '爱好'])  # 表头字段
    wb4.append([1, 'jason', 18, 'read'])
    wb4.append([2, 'kevin', 28, 'music'])
    wb4.append([3, 'tony', 58, 'play'])
    wb4.append([4, 'oscar', 38, 'ball'])
    wb4.append([5, 'jerry', 'ball'])
    wb4.append([6, 'tom', 88, 'ball', '哈哈哈'])
    wb.save(r'111.xlsx')

填写数学公式

    wb4.cell(row=1, column=1, value=12321)
    wb4.cell(row=2, column=1, value=3424)
    wb4.cell(row=3, column=1, value=23423432)
    wb4.cell(row=4, column=1, value=2332)
    wb4['A5'] = '=sum(A1:A4)'  # 这句话表示求和
    # 方式2
    wb4.cell(row=8,column=3,value='=sum(A1:A4)')
    wb.save(r'111.xlsx')

pandas模块

"""
openpyxl主要用于数据的写入 至于后续的表单操作它并不是很擅长 如果想做需要更高级的模块pandas
"""
    import pandas

    data_dict = {
        "公司名称": comp_title_list,
        "公司地址": comp_address_list,
        "公司邮编": comp_email_list,
        "公司电话": comp_phone_list
    }
    # 将字典转换成pandas里面的DataFrame数据结构
    df = pandas.DataFrame(data_dict)
    # 直接保存成excel文件
    df.to_excel(r'pd_comp_info.xlsx')

标签:wb4,list,爬虫,date,模块,pip,home,requests
From: https://www.cnblogs.com/zhanghong1229/p/16829712.html

相关文章

  • requests模块/openpyxl模块/简单爬虫实战
    内容概要第三方模块的下载及使用网络爬虫及requests模块网络爬虫实战爬取二手房信息自动化办公领域模块openpyxl练习题及答案第三方模块的下载第三方模块就类似与......
  • 网络爬虫及openyxl模块
    网络爬虫及openyxl模块一、第三方模块简介1.第三方模块的用处python之所以在这么多的编程语言中脱颖而出的优点是有众多的第三方库函数,可以更高效率的实现开发2.......
  • 第三方模块的下载与使用、request模块、openpyxl模块
    第三方模块的下载与使用第三方模块:别人写的模块一般情况下功能都特别强大我们如果想使用第三方模块第一次必须先下载后面才可以反复使用(等同于内置模块)下载......
  • 第三方模块
    今日内容概要目录今日内容概要今日内容详情第三方模块下载与使用第三方模块的下载第三方模块可能会出现的错误网络爬虫模块之requests模块网络爬虫模块之爬取链家二手房数......
  • MILIANKE-CZ01-7010/7020400-核心模块硬件手册(ZYNQ)
    1产品概述    自2017年MLK-CZ01-7010/7020-400(MZ7XCORE400)系列开发平台发布以来,该系列开发平台和核心模块经过多次迭代升级,在工业自动化、水利电力控制设备、医疗图......
  • 爬虫前戏
    第三方模块的下载与使用第三方模块:别人写的模块一般情况下功能都特别强大我们如果想使用第三方模块第一次必须先下载后面才可以反复使用(等同于内置模块)下载第三......
  • 第三方模块
    目录一.第三方模块的下载与使用二.网络爬虫模块之requests模块三.网络爬虫实战之爬取链家二手房数据四.自动化办公领域之openpyxl模块1.excel文件的后缀名问题2.操作excel......
  • VM系列振弦传感器读数模块常见问题
    1、计算机无法与模块通讯应通过以下步骤逐一排查问题(1)观察振弦模块状态灯是否正常闪烁,若不正常则应基本断定是模块问题,此时应尝试对模块进行出厂参数恢复。在高速测量时,因......
  • 【k哥爬虫普法】简历大数据公司被查封,个人隐私是红线!
    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的......
  • 爬虫不使用HTTP代理会怎样
    很多人知道爬虫工作需要HTTP代理的支持,但却不知道爬虫为什么要使用代理,不使用代理会怎样呢,今天我们一起来讨论下。网络爬虫主要是一种通过代码模拟真实用户批量......