有时候我们想要别的网站的数据的时候,有些不需要模拟登陆发送请求,只是当当的发送登陆之后cookie之后,就可以进行登陆和抓取页面操作。
使用requests模块比较简单。
目前支持python最高版本:3.5.
1、抓取前需要知道在发送请求的cookie值。可以在浏览器中查看。
2、requests定义cookie参数:key=value形式。要想发送你的cookies到服务器,可以使用 cookies 参数:
1 >>> url = 'http://httpbin.org/cookies' 2 >>> cookies = dict(cookies_are='working') 3 4 >>> r = requests.get(url, cookies=cookies) 5 >>> r.text 6 '{"cookies": {"cookies_are": "working"}}'
其中cookies_are可以使用一组cookie来传值。以'cookies_are'为key值构成的键值对。每个key=value用分好分割。比如:
1 cookies = { 'cookies_are': 2 'gpsd=99870dc9b245f73ab8e081114xxxxxddada; __utma=197952765.1227908348.1475892329.1475892329.1475896xxx;'}
多个cookie请到浏览器中请求头中复制。
简单抓取页面数据的脚本:运行环境:python2.6和2.7版本。
1 # -*- coding=utf-8 -*- 2 ########################### 3 import requests 4 # 定义cookies 5 cookies = { 'cookies_are':'xxxx'} 6 7 def get_app_rd_manager(page): 8 # 传递不同的页面,获取每页展示的应用信息 9 payload = {'currentPage:': page, 'pageSize': 100, 'pageFlag': 'true', 'keyword': ''} 10 url = "http://j-one.jd.com/systemApp/appBase?currentPage=%s&pageSize=100"%(page) 11 r = requests.post(url,data=payload,cookies=cookies) 12 r.encoding="utf-8" 13 page_list = r.content.split() 14 tmp = list() 15 num = -1 16 for i in page_list: 17 num += 1 18 if i == 'name="appId"': 19 #获取关键字,获取之后的几行内容并数据处理 20 app_id = page_list[num+3][4:][:-5] 21 app_name_english = page_list[num+5][4:][:-5] 22 app_name_chinese =page_list[num+6][4:][:-5] 23 #print app_name_english 24 app_rd_manager =page_list[num+7][4:][:-5] 25 #print'%s %s'%(app_name_english,app_rd_manager) 26 # ret = {'app_id':app_id,'app_name_english':app_name_english,'app_name_chinese':app_name_chinese,'app_rd_manager':app_rd_manager} 27 ret={"应用人":app_rd_manager.__repr__,'应用名':app_name_chinese.__repr__} 28 tmp.append(ret) 29 return tmp 30 31 if __name__ == "__main__": 32 result = list() 33 i = 0 34 while True: 35 i += 1 36 tmp_list = get_app_rd_manager(i) 37 if not tmp_list: 38 break; 39 result.extend(tmp_list) 40 print result,len(result)
更详细文档请看:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html#url
爬虫利器:bs4模块
详情请见:http://cuiqingcai.com/1319.html