还说不会爬虫?点了就能爬的爬虫源代码,不信?你试试?
爬取数据,远远没有你想象中的那么难。前提是你得会,不是说会者不难嘛。良心分享,源码贴出,不信你敲敲看哦。
试试代码行不行,绝对没问题,哈哈如果有问题,再来找小编。
使用python编写的爬虫源代码
# 抓取网址:http://data.wxb.com/rank import requests import json import urllib.request headers = {"Accept": "application/json, text/plain, */*", "Accept-Encoding": "gzip, deflate", "Cache-Control": "no-cache", "Connection": "close", "Cookie": "PHPSESSID=tp0vt9ahpnbku996vvuretjkc0; visit-wxb-id=837b20bccb3f77a1a8e5b6df0c4c4f20; IESESSION=alive; _qddamta_4009981236=3-0; pgv_pvi=2412895232; pgv_si=s7791044608; tencentSig=5037132800; wxb_fp_id=1381177533; Hm_lvt_5859c7e2fd49a1739a0b0f5a28532d91=1504086148; Hm_lpvt_5859c7e2fd49a1739a0b0f5a28532d91=1504087022; _qddaz=QD.sb0qu8.355lwa.j6yu23d8; _qdda=3-1.1; _qddab=3-996f34.j6yu23da", "Referer": "http://data.wxb.com/searchResult?kw=%E8%AF%81%E5%88%B8", "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36", "X-Postman-Interceptor-Id": "6c06f41b-ba61-17a1-9c50-fb545d4753e7", "X-Requested-With": "XMLHttpRequest"} url = 'http://data.wxb.com/search' # 结果写入文件 flow = open('Wechat public platforms.json', 'w') mydata = [] for i in range(0, 25): myParams = {'page': i, 'page_size': 10, 'kw': '数据分析', 'category_id' : '', 'start_rank': '*', 'end_rank' : '*', 'fans_min': '', 'fans_max': '', 'sort' : '', 'is_verify' : 0, 'is_original' : 0, 'is_continuous' : 0} req = requests.get(url,params=myParams, headers=headers) mydata.extend(req.json()['data']) json.dump(mydata, flow) flow.close() print(len(mydata)) |
小坑你发现了吗
爬出来的结果比网页上多出了10条数据,竟验证猜想,确实是有一部分数据重复了。这是为什么呢,经过调试验证,原来错误出在这里。聪明如你,细心如你,你发现这个坑了嘛?
平时使用range()呢,习惯从0开始,到长度值为止。重复的是第一个页面的结果,也就是说网站上参数本来应该是Page从1开始的。这样写循环,page从0开始,倒是也不会报错。但是爬出来的数据第一页的10条数据就都重复了。
json文件是不是就这样不花一分钱拿到了?愿君过个好周末,明天咱们把数据处理来做一做。
点击下方二维码,关注“数据分析师手记”,和三月桑一起修炼数据分析师~