requests爬数据–python

  • Post author:
  • Post category:python



requests爬数据–python

本人对于python用的不是很多,也无很深入的学过,但因为之前工作需要,用到python爬系统数据,自己研究了很久,查了很多资料,本人找到两篇很不错的总结(requests的用法及数据写入Excel),文章最后有链接。我用的是requests模块,简单实用,Requests模块缺陷:不能执行JS 和CSS 代码。

用户获取网络数据的方式:

方式1:浏览器提交请求—>下载网页代码—>解析成页面

方式2:模拟浏览器发送请求(获取网页代码)—>提取有用的数据—>存放于数据库或文件中,爬虫要做的就是方式2。

基本思路:

  1. 获取页面的url,cookies,headers,观察url的变化规律(用于多页爬取)
  2. 使用.get发起请求使用.get发起请求
  3. 服务器相应(正常),会得到回应
  4. 解析内容(本文返回结果为josn模块,所以解析josn)
  5. xlwt保存为xls格式

爬虫过程

某滴官方车管系统

这个案例是我18年9月份爬的数据,当时刚入职新公司,数据不全,到处整数据,这个系统也是其中之一,第一次自己尝试爬虫,很多辛酸泪,(主要完全不知道如何下手)当然你也可以一页一页复制,总共507页(5000多条数据),如果一页30s来算(包括网络、copy到文件等),花时15210s,整整4个多小时,现在页面数应该是这个数的2倍多。

代码如下:

#爬取小桔系统司机基本信息
import requests   #requests载入
from bs4 import BeautifulSoup
import xlwt           #xlwt载入
#创建工作簿
wbk = xlwt.Workbook(encoding='utf-8')
#创建工作表
sheet = wbk.add_sheet('sheet 1', cell_overwrite_ok=True)
listhead=['订单号','车牌','车型','状态','司机姓名','电话','租期','租金','押金']
for j in range(len(listhead)):
    sheet.write(0,j,listhead[j])
page=1
#爬取分页信息
m=1
n=0
o=1
p=6
while page<508:
    url1="https://car.**********-gateway*******8der/list"
    cookie={'_ga':'GA1.2.1423950152.1550627306',
        '_gid':'GA1.2.17*******2.1550627306',
      ‘AutoCompanyUser':'bDA5bkhxUk9MR2*********wQzZpTHZ2UkVUQm9WdXExNGhZeVhEOFdVNnpiMkZDWlJXSVZNUHhLYnZsWUpkRzNLUVhsVWwrdHpldHhxM3pkdkl3N3NSK1FDcmphcGFwRWN3aFlRd21aUGRIVmo4OW5IcjUvV1NXKzhCQzhaeHI3M1dXU0NCK1hBRXh6YkorUmtCL2ZqdGFUQ3NPNklHUVFXcjBiYU9mS2l5MHA2WGNOS2s3T0ZiczdJREdt',
       '_gat_gtag_UA_113940482_1':'1'}
    header={'User-Agent':'Mo*******************, like Gecko) Chrome/63.**************ari/537.36',
       'Host':'car.xiaojukeji.com',
       'Referer':'https://***********/',
       'X-Auto-Company-ID':'8267',
       'X-Requested-With':'X*******'}
    payload={'orderStateGroup':4,
     'current':page,
     'businessLine':1,
   'wsgsig':'*************************SyBBDsbUawosMAdN57G9CuJ/U9Pnx1cNLQBE************69f4LQCaq',
     'from':'webapp'}
    r1=requests.get(url1,params=payload,headers=header,cookies=cookie,).json()    
    list1 = r1['data'][0]['pagination']['items']   #选择数据所在的数据块
    carinfo = ['orderId','carNo','carVariantName','stateName','userName','userPhone','term','monthlyPayment','deposit']
    for i in range(len(list1)):                     #遍历list1
        for j in range(len(carinfo)):          #遍历carinfo
            sheet.write(m,n,list1[i][j])           #写入表格
            n+=1    
        n=0
        m+=1
    page=page+1                                   #翻页
wbk.save(r'd:\test2.xls')
print('ok')

爬取的结果如图:

从滴滴官方系统爬出来的,代码部分有*号系为了安全

爬取结果

参考:


http://www.cnblogs.com/lei0213/p/6957508.html

requests学习


https://blog.csdn.net/wangkai_123456/article/details/50457284

xlwt学习



版权声明:本文为qq_24220519原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。