Python爬取站酷全网用户数据

爬取站酷所有用户资料作品,图片,视频等内容。。。

1.首先我用的是Python3加scrapy,每次爬取一个网站,个人习惯都会对这个网站查看很久,思考怎么写最方便,最通用写这个网站的时候我就发现了,这个网站的每个用户的网址是比较有规律的,为自增长,当然可能中间有一些无效用户吗,但是不影响我们把数据抓全。

2.其次,这个网站理论上来说相对比较简单的,因为没有IP限制,没有js破解,抓取的时候主要考略怎么快就行了!但是有一个要记得,这个网站的视频链接是有有效期的,大家要注意!

3.第一步构造请求,理论上需要从1,构造到17000000左右,为啥事这个,因为当时我新注册额两个,是连的增长的,再加上我之前跑过部分数据观察过其规律,我是开了多个窗口执行代替了分布式。

代码的话我只复制spiders的代码如下,因为比较简单,网站没什么反爬,只需要告诉你怎么抓全,以及视频链接过期问题!这是我爬下来的数据,我们是所以关于这个人的信息全部拿下来了!

表一基本用户信息表:

这是获取用户本身信息,用户信息和作品我是分开跑的,因为作品太多,如果一起层次太深!
# -*- coding: utf-8 -*-
import scrapy
from copy import deepcopy
import re
import redis
from zhanku.items import ZhankuItem


class ZhankuSpider(scrapy.Spider):
    name = 'ZhanKu'
    allowed_domains = ['zcool.com.cn']


    def start_requests(self):
        r = redis.StrictRedis(host="127.0.0.1", port=6379, decode_responses=True)
        while True:
            url = r.spop("zhanku_website")
            dict_data = {}
            yield scrapy.Request(url, meta={"dict_data": dict_data}, callback=self.parse,
                                 dont_filter=True)

    def parse(self, response):
        dict_data = response.meta["dict_data"]
        div_list = response.xpath("//div[@class='work-list-box']/div[@class='card-box']")
        for div in div_list:
            views = div.xpath(".//span[@class='statistics-view']/@title").extract_first()
            try:
                view_num = int(re.search("\d+", views).group())
            except:
                view_num = 0
            link = div.xpath(".//a[@class='title-content']/@href").extract_first()
            dict_data[link] = view_num
        next_page = response.xpath("//div[@class='pageturning ']//a[@class='laypage_next']/@href").extract_first()
        if next_page:
            yield scrapy.Request("https://www.zcool.com.cn" + next
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值