学会python以后真的是用处很大,下面传智播客分享一个关于学会python以后抓取知乎数据的案例。 安装Scrapy爬虫框架 关于如何安装Python以及Scrapy框架,这里不做介绍,请自行网上搜索。 初始化 安装好Scrapy后,执行 scrapy startproject myspider 接下来你会看到 myspider 文件夹,目录结构如下: scrapy.cfg myspider items.py pipelines.py settings.py __init__.py spiders __init__.py 编写爬虫文件 在spiders目录下新建 users.py
[color=rgb(184, 92, 0) !important] # -*- coding: utf-8 -*-
[color=teal !important] import [color=teal !important] scrapy
[color=teal !important] import [color=teal !important] os
[color=teal !important] import [color=teal !important] time
[color=teal !important] from [color=rgb(0, 45, 122) !important] zhihu [color=rgb(51, 51, 51) !important] . [color=teal !important]items [color=teal !important]import [color=teal !important]UserItem
[color=teal !important] from [color=rgb(0, 45, 122) !important] zhihu [color=rgb(51, 51, 51) !important] . [color=teal !important]myconfig [color=teal !important]import [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(0, 111, 224) !important] [color=rgb(184, 92, 0) !important]# 爬虫配置
[color=rgb(128, 0, 128) !important] class [color=rgb(0, 111, 224) !important] [color=teal !important] UsersSpider [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]scrapy [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]Spider [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] name [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'users'
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] domain [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'https://www.zhihu.com'
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] login_url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'https://www.zhihu.com/login/email'
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] headers [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] "Accept" [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] "Accept-Language" [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"zh-CN,zh;q=0.8" [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] "Connection" [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"keep-alive" [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] "Host" [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"www.zhihu.com" [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] "Upgrade-Insecure-Requests" [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"1" [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] "User-Agent" [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36"
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] }
[color=rgb(0, 111, 224) !important] [color=teal !important] def [color=teal !important] __init__ [color=rgb(51, 51, 51) !important]( self [color=rgb(51, 51, 51) !important], [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]None [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important] . [color=rgb(0, 45, 122) !important] user_url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]url
[color=teal !important] def [color=teal !important] start_requests [color=rgb(51, 51, 51) !important]( self [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] [color=teal !important] yield [color=rgb(0, 45, 122) !important] scrapy [color=rgb(51, 51, 51) !important]. [color=teal !important]Request [color=rgb(51, 51, 51) !important](
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]domain [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] headers [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]headers [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] meta [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'proxy' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'proxy' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'cookiejar' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 153, 153) !important]1
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] } [color=rgb(51, 51, 51) !important] ,
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] callback [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]request [color=rgb(51, 51, 51) !important]_ captcha
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] )
[color=rgb(0, 111, 224) !important] [color=teal !important] def [color=teal !important] request_captcha [color=rgb(51, 51, 51) !important]( self [color=rgb(51, 51, 51) !important], [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] [color=rgb(184, 92, 0) !important] # 获取_xsrf值
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] _xsrf [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=teal !important]css [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'input[name="_xsrf"]::attr(value)' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important][ [color=rgb(0, 153, 153) !important]0 [color=rgb(51, 51, 51) !important]
[color=rgb(0, 111, 224) !important] [color=rgb(184, 92, 0) !important] # 获取验证码地址
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] captcha_url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'http://www.zhihu.com/captcha.gif?r=' [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]+ [color=rgb(0, 111, 224) !important] [color=teal !important]str [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]time [color=rgb(51, 51, 51) !important]. [color=teal !important]time [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]* [color=rgb(0, 111, 224) !important] [color=rgb(0, 153, 153) !important]1000 [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(184, 92, 0) !important] # 准备下载验证码
[color=rgb(0, 111, 224) !important] [color=teal !important] yield [color=rgb(0, 45, 122) !important] scrapy [color=rgb(51, 51, 51) !important]. [color=teal !important]Request [color=rgb(51, 51, 51) !important](
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]captcha_url [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] headers [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]headers [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] meta [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'proxy' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'proxy' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'cookiejar' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]meta [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'cookiejar' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] '_xsrf' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] _xsrf
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] } [color=rgb(51, 51, 51) !important] ,
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] callback [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]download [color=rgb(51, 51, 51) !important]_ captcha
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] )
[color=rgb(0, 111, 224) !important] [color=teal !important] def [color=teal !important] download_captcha [color=rgb(51, 51, 51) !important]( self [color=rgb(51, 51, 51) !important], [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] [color=rgb(184, 92, 0) !important] # 下载验证码
[color=rgb(0, 111, 224) !important] [color=teal !important] with [color=teal !important] open [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'captcha.gif' [color=rgb(51, 51, 51) !important], [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'wb' [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important] as [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]fp [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] fp [color=rgb(51, 51, 51) !important] . [color=teal !important]write [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]body [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(184, 92, 0) !important] # 用软件打开验证码图片
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] os [color=rgb(51, 51, 51) !important] . [color=teal !important]system [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'start captcha.gif' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(184, 92, 0) !important] # 输入验证码
[color=rgb(0, 111, 224) !important] print [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'Please enter captcha: '
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] captcha [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]raw_input [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=teal !important] yield [color=rgb(0, 45, 122) !important] scrapy [color=rgb(51, 51, 51) !important]. [color=teal !important]FormRequest [color=rgb(51, 51, 51) !important](
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]login_url [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] headers [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]headers [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] formdata [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'email' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'email' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'password' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'password' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] '_xsrf' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]meta [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'_xsrf' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'remember_me' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'true' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'captcha' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] captcha
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] } [color=rgb(51, 51, 51) !important] ,
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] meta [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'proxy' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'proxy' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'cookiejar' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]meta [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'cookiejar' [color=rgb(51, 51, 51) !important]
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] } [color=rgb(51, 51, 51) !important] ,
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] callback [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]request [color=rgb(51, 51, 51) !important]_ zhihu
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] )
[color=rgb(0, 111, 224) !important] [color=teal !important] def [color=teal !important] request_zhihu [color=rgb(51, 51, 51) !important]( self [color=rgb(51, 51, 51) !important], [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] [color=teal !important] yield [color=rgb(0, 45, 122) !important] scrapy [color=rgb(51, 51, 51) !important]. [color=teal !important]Request [color=rgb(51, 51, 51) !important](
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]user_url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]+ [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'/about' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] headers [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]headers [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] meta [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'proxy' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'proxy' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'cookiejar' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]meta [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'cookiejar' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'from' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'sign' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'else' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'data' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{ [color=rgb(51, 51, 51) !important]}
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] }
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] } [color=rgb(51, 51, 51) !important] ,
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] callback [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]user_item [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] dont_filter [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]True
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] )
[color=rgb(0, 111, 224) !important] [color=teal !important] yield [color=rgb(0, 45, 122) !important] scrapy [color=rgb(51, 51, 51) !important]. [color=teal !important]Request [color=rgb(51, 51, 51) !important](
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]user_url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]+ [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'/followees' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] headers [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]headers [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] meta [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'proxy' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'proxy' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'cookiejar' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]meta [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'cookiejar' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'from' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'sign' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'else' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'data' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{ [color=rgb(51, 51, 51) !important]}
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] }
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] } [color=rgb(51, 51, 51) !important] ,
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] callback [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]user_start [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] dont_filter [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]True
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] )
[color=rgb(0, 111, 224) !important] [color=teal !important] yield [color=rgb(0, 45, 122) !important] scrapy [color=rgb(51, 51, 51) !important]. [color=teal !important]Request [color=rgb(51, 51, 51) !important](
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]user_url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]+ [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'/followers' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] headers [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]headers [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] meta [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'proxy' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'proxy' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'cookiejar' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]meta [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'cookiejar' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'from' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'sign' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'else' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'data' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{ [color=rgb(51, 51, 51) !important]}
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] }
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] } [color=rgb(51, 51, 51) !important] ,
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] callback [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]user_start [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] dont_filter [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]True
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] )
[color=rgb(0, 111, 224) !important] [color=teal !important] def [color=teal !important] user_start [color=rgb(51, 51, 51) !important]( self [color=rgb(51, 51, 51) !important], [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] sel_root [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//h2[@class="zm-list-content-title"]' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(184, 92, 0) !important] # 判断关注列表是否为空
[color=rgb(0, 111, 224) !important] if [color=rgb(0, 111, 224) !important] [color=teal !important] len [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel_root [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] for [color=rgb(0, 111, 224) !important] [color=teal !important] sel in [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]sel_root [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] people_url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'a/@href' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important][ [color=rgb(0, 153, 153) !important]0 [color=rgb(51, 51, 51) !important]
[color=rgb(0, 111, 224) !important] [color=teal !important] yield [color=rgb(0, 45, 122) !important] scrapy [color=rgb(51, 51, 51) !important]. [color=teal !important]Request [color=rgb(51, 51, 51) !important](
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]people_url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]+ [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'/about' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] headers [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]headers [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] meta [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'proxy' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'proxy' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'cookiejar' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]meta [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'cookiejar' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'from' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'sign' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'else' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'data' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{ [color=rgb(51, 51, 51) !important]}
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] }
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] } [color=rgb(51, 51, 51) !important] ,
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] callback [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]user_item [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] dont_filter [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]True
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] )
[color=rgb(0, 111, 224) !important] [color=teal !important] yield [color=rgb(0, 45, 122) !important] scrapy [color=rgb(51, 51, 51) !important]. [color=teal !important]Request [color=rgb(51, 51, 51) !important](
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]people_url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]+ [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'/followees' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] headers [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]headers [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] meta [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'proxy' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'proxy' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'cookiejar' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]meta [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'cookiejar' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'from' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'sign' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'else' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'data' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{ [color=rgb(51, 51, 51) !important]}
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] }
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] } [color=rgb(51, 51, 51) !important] ,
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] callback [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]user_start [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] dont_filter [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]True
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] )
[color=rgb(0, 111, 224) !important] [color=teal !important] yield [color=rgb(0, 45, 122) !important] scrapy [color=rgb(51, 51, 51) !important]. [color=teal !important]Request [color=rgb(51, 51, 51) !important](
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]people_url [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]+ [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'/followers' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] headers [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]headers [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] meta [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'proxy' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]UsersConfig [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'proxy' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'cookiejar' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]meta [color=rgb(51, 51, 51) !important][ [color=rgb(221, 17, 68) !important]'cookiejar' [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'from' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'sign' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]'else' [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important] 'data' [color=rgb(0, 111, 224) !important] : [color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important]{ [color=rgb(51, 51, 51) !important]}
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] }
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] } [color=rgb(51, 51, 51) !important] ,
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] callback [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] self [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]user_start [color=rgb(51, 51, 51) !important],
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] dont_filter [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]True
[color=rgb(0, 111, 224) !important] [color=rgb(51, 51, 51) !important] )
[color=rgb(0, 111, 224) !important] [color=teal !important] def [color=teal !important] user_item [color=rgb(51, 51, 51) !important]( self [color=rgb(51, 51, 51) !important], [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] [color=teal !important] def [color=teal !important] value [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]list [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important]:
[color=rgb(0, 111, 224) !important] return [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] list [color=rgb(51, 51, 51) !important][ [color=rgb(0, 153, 153) !important]0 [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] if [color=rgb(0, 111, 224) !important] [color=teal !important]len [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]list [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important] else [color=rgb(0, 111, 224) !important] [color=rgb(221, 17, 68) !important]''
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] sel [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//div[@class="zm-profile-header ProfileCard"]' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]UserItem [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'url' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]response [color=rgb(51, 51, 51) !important]. [color=rgb(0, 45, 122) !important]url [color=rgb(51, 51, 51) !important][ [color=rgb(0, 111, 224) !important]: [color=rgb(0, 111, 224) !important]- [color=rgb(0, 153, 153) !important]6 [color=rgb(51, 51, 51) !important]
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'name' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//a[@class="name"]/text()' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important][ [color=rgb(0, 153, 153) !important]0 [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important]. [color=teal !important]encode [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'utf-8' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'bio' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]value [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//span[@class="bio"]/@title' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]encode [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'utf-8' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'location' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]value [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//span[contains(@class, "location")]/@title' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]encode [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'utf-8' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'business' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]value [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//span[contains(@class, "business")]/@title' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]encode [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'utf-8' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'gender' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(0, 153, 153) !important]0 [color=rgb(0, 111, 224) !important] if [color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//i[contains(@class, "icon-profile-female")]' [color=rgb(51, 51, 51) !important]) [color=rgb(0, 111, 224) !important] else [color=rgb(0, 111, 224) !important][color=rgb(0, 153, 153) !important]1
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'avatar' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]value [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//img[@class="Avatar Avatar--l"]/@src' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'education' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]value [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//span[contains(@class, "education")]/@title' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]encode [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'utf-8' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'major' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]value [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//span[contains(@class, "education-extra")]/@title' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]encode [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'utf-8' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'employment' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important][color=teal !important]value [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//span[contains(@class, "employment")]/@title' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]encode [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'utf-8' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'position' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]value [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//span[contains(@class, "position")]/@title' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]encode [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'utf-8' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'content' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=teal !important]value [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//span[@class="content"]/text()' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]strip [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]encode [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'utf-8' [color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'ask' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]int [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//div[contains(@class, "profile-navbar")]/a[2]/span[@class="num"]/text()' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important][ [color=rgb(0, 153, 153) !important]0 [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'answer' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]int [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//div[contains(@class, "profile-navbar")]/a[3]/span[@class="num"]/text()' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important][ [color=rgb(0, 153, 153) !important]0 [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'agree' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]int [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//span[@class="zm-profile-header-user-agree"]/strong/text()' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important][ [color=rgb(0, 153, 153) !important]0 [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=rgb(0, 45, 122) !important] item [color=rgb(51, 51, 51) !important] [ [color=rgb(221, 17, 68) !important]'thanks' [color=rgb(51, 51, 51) !important][color=rgb(0, 111, 224) !important] [color=rgb(0, 111, 224) !important]= [color=rgb(0, 111, 224) !important] [color=rgb(128, 0, 128) !important]int [color=rgb(51, 51, 51) !important]( [color=rgb(0, 45, 122) !important]sel [color=rgb(51, 51, 51) !important]. [color=teal !important]xpath [color=rgb(51, 51, 51) !important]( [color=rgb(221, 17, 68) !important]'//span[@class="zm-profile-header-user-thanks"]/strong/text()' [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important]. [color=teal !important]extract [color=rgb(51, 51, 51) !important]( [color=rgb(51, 51, 51) !important]) [color=rgb(51, 51, 51) !important][ [color=rgb(0, 153, 153) !important]0 [color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important])
[color=rgb(0, 111, 224) !important] [color=teal !important] yield [color=rgb(0, 45, 122) !important] item 添加爬虫配置文件 在myspider目录下新建myconfig.py,并添加以下内容,将你的配置信息填入相应位置 # -*- coding: utf-8 -*- UsersConfig = { # 代理 'proxy': '', # 知乎用户名和密码 'email': 'your email', 'password': 'your password', } DbConfig = { # db config 'user': 'db user', 'passwd': 'db password', 'db': 'db name', 'host': 'db host', } 修改items.py # -*- coding: utf-8 -*- import scrapy class UserItem(scrapy.Item): # define the fields for your item here like: url = scrapy.Field() name = scrapy.Field() bio = scrapy.Field() location = scrapy.Field() business = scrapy.Field() gender = scrapy.Field() avatar = scrapy.Field() education = scrapy.Field() major = scrapy.Field() employment = scrapy.Field() position = scrapy.Field() content = scrapy.Field() ask = scrapy.Field() answer = scrapy.Field() agree = scrapy.Field() thanks = scrapy.Field() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # -*- coding: utf-8 -*- import scrapy class UserItem(scrapy.Item): # define the fields for your item here like: url = scrapy.Field() name = scrapy.Field() bio = scrapy.Field() location = scrapy.Field() business = scrapy.Field() gender = scrapy.Field() avatar = scrapy.Field() education = scrapy.Field() major = scrapy.Field() employment = scrapy.Field() position = scrapy.Field() content = scrapy.Field() ask = scrapy.Field() answer = scrapy.Field() agree = scrapy.Field() thanks = scrapy.Field() 将用户数据存入mysql数据库 修改pipelines.py # -*- coding: utf-8 -*- import MySQLdb import datetime from zhihu.myconfig import DbConfig class UserPipeline(object): def __init__(self): self.conn = MySQLdb.connect(user = DbConfig['user'], passwd = DbConfig['passwd'], db = DbConfig['db'], host = DbConfig['host'], charset = 'utf8', use_unicode = True) self.cursor = self.conn.cursor() # 清空表 # self.cursor.execute('truncate table weather;') # self.conn.commit() def process_item(self, item, spider): curTime = datetime.datetime.now() try: self.cursor.execute( """INSERT IGNORE INTO users (url, name, bio, location, business, gender, avatar, education, major, employment, position, content, ask, answer, agree, thanks, create_at) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""", ( item['url'], item['name'], item['bio'], item['location'], item['business'], item['gender'], item['avatar'], item['education'], item['major'], item['employment'], item['position'], item['content'], item['ask'], item['answer'], item['agree'], item['thanks'], curTime ) ) self.conn.commit() except MySQLdb.Error, e: print 'Error %d %s' % (e.args[0], e.args[1]) return item 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 # -*- coding: utf-8 -*- import MySQLdb import datetime from zhihu.myconfig import DbConfig class UserPipeline(object): def __init__(self): self.conn = MySQLdb.connect(user = DbConfig['user'], passwd = DbConfig['passwd'], db = DbConfig['db'], host = DbConfig['host'], charset = 'utf8', use_unicode = True) self.cursor = self.conn.cursor() # 清空表 # self.cursor.execute('truncate table weather;') # self.conn.commit() def process_item(self, item, spider): curTime = datetime.datetime.now() try: self.cursor.execute( """INSERT IGNORE INTO users (url, name, bio, location, business, gender, avatar, education, major, employment, position, content, ask, answer, agree, thanks, create_at) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""", ( item['url'], item['name'], item['bio'], item['location'], item['business'], item['gender'], item['avatar'], item['education'], item['major'], item['employment'], item['position'], item['content'], item['ask'], item['answer'], item['agree'], item['thanks'], curTime ) ) self.conn.commit() except MySQLdb.Error, e: print 'Error %d %s' % (e.args[0], e.args[1]) return item 修改settings.py 找到 ITEM_PIPELINES,改为: ITEM_PIPELINES = { 'myspider.pipelines.UserPipeline': 300, } 1 2 3 ITEM_PIPELINES = { 'myspider.pipelines.UserPipeline': 300, } 在末尾添加,设置爬虫的深度 DEPTH_LIMIT=10 1 DEPTH_LIMIT=10 爬取知乎用户数据 确保MySQL已经打开,在项目根目录下打开终端, 执行 scrapy crawl users -a url=https://www.zhihu.com/people/, 其中user为爬虫的第一个用户,之后会根据该用户关注的人和被关注的人进行爬取数据 接下来会下载验证码图片,若未自动打开,请到根目录下打开 captcha.gif,在终端输入验证码 数据爬取Loading…
|