还说不会爬虫?点了就能爬的爬虫源代码,不信?你试试?

爬取数据,远远没有你想象中的那么难。前提是你得会,不是说会者不难嘛。良心分享,源码贴出,不信你敲敲看哦。


试试代码行不行,绝对没问题,哈哈如果有问题,再来找小编。


使用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文件是不是就这样不花一分钱拿到了?愿君过个好周末,明天咱们把数据处理来做一做。


点击下方二维码,关注“数据分析师手记”,和三月桑一起修炼数据分析师~