会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132647个问题
Python 全系列/第十六阶段:Python 爬虫开发/爬虫数据存储 1006楼

{'title': '正文 第1章 御刀诀!', 'conten': '蛮荒大陆,浩瀚无边,千族林立,万国争雄。\n\n\xa0\xa0\xa0\xa0其时,武道鼎盛,强者为尊。\n\n\xa0\xa0\xa0\xa0一代枭雄楚狂歌天资超卓,以万夫莫敌之势开疆辟土,在苍莽山脉附近建立南明王朝,坐拥十万里山河,传承至今已是五百余年。\n\n\xa0\xa0\xa0\xa0王朝东部,云雾湖畔,黑风岭中。\n\n\xa0\xa0\xa0\xa0密林幽深,阴暗潮湿,满地的落叶散发着**的霉味,冷风吹来,簌簌而响。\n\n\xa0\xa0\xa0\xa0两道人影在林中穿梭,一青一蓝,直奔十数丈外已经出现在视野中的小土包。\n\n\xa0\xa0\xa0\xa0“林尘那傻子不过才二阶而已,怎么可能在我那一刀下还没死?”\n\n\xa0\xa0\xa0\xa0走在前面的青衣大为纳闷与不解。\n\n\xa0\xa0\xa0\xa0“肯定你昨晚床单滚多了,精力耗尽,连个二阶的傻子都杀不死!”\n\n\xa0\xa0\xa0\xa0蓝衣一脸抱怨与鄙视,要不是青衣办事不利,他也不用陪着再跑一次了。\n\n\xa0\xa0\xa0\xa0“可能还没死透吧!”\n\n\xa0\xa0\xa0\xa0青衣讪讪一笑,无言以对。\n\n\xa0\xa0\xa0\xa0毕竟,适才从林家反馈回来的消息,林尘的魂玉确实还是完好无损的,也就证明林尘还活着。\n\n\xa0\xa0\xa0\xa0“赶快把坟挖开,没死透的话再补上几刀。”\n\n\xa0\xa0\xa0\xa0伴随着一阵沙沙之声,两人开始刨坟,不一会儿,一个蓬头垢面的少年隐隐现出了身形。\n\n\xa0\xa0\xa0\xa0正是林尘!\n\n\xa0\xa0\xa0\xa0此刻,林尘面无血色,双目紧闭,胸前有一处深可见骨的刀伤,鲜血犹自涓涓而流,染红了白色衣裳,却残留几许余温。\n\n\xa0\xa0\xa0\xa0“果然还没死透!”\n\n\xa0\xa0\xa0\xa0蓝衣停了下来,不再继续刨坟,眼中凶光一闪,面目狰狞,便要拔刀逞凶,就在这时,却听‘铿’的一声,青衣腰间的佩刀已是率先出鞘。\n\n\xa0\xa0\xa0\xa0只是,这刀却非青衣自己拔刀出鞘的。\n\n\xa0\xa0\xa0\xa0刀锋冷寒,斜斩而出,竟是凭空自舞!\n\n\xa0\xa0\xa0\xa0“啊!”\n\n\xa0\xa0\xa0\xa0突兀之间,青衣还没弄清楚发生何事,更别说反应躲避,只来及发出一声惨呼,便被自己的锋利的佩刀斩成两断,鲜血四溅。\n\n\xa0\xa0\xa0\xa0这时,蓝衣的惊呼声才姗姗来迟:“小心!”\n\n\xa0\xa0\xa0\xa0咻!\n\n\xa0\xa0\xa0\xa0诡异的一刀在将青衣拦腰斩断后,余势不减,闪电般袭向一旁的蓝衣。\n\n\xa0\xa0\xa0\xa0蓝衣瞳孔一缩,顾不得惊骇,慌忙运转内气,挥刀迎击。\n\n\xa0\xa0\xa0\xa0然而,就在两刀撞击的瞬间,青衣的佩刀竟是微微一颤,差之毫厘的避开了蓝衣的长刀。\n\n\xa0\xa0\xa0\xa0之后在蓝衣惊怖欲绝的目光注视下,暴力的捅进了他的丹田!\n\n\xa0\xa0\xa0\xa0咚!\n\n\xa0\xa0\xa0\xa0沉闷的响声中,巨大的力道从刀身传出,不仅将蓝衣身体贯穿,更将其钉在身后的树干上,任由他哀嚎惨呼,却也动弹不得。\n\n\xa0\xa0\xa0\xa0尘埃落定!\n\n\xa0\xa0\xa0\xa0土坟中,林尘不知何时早已睁开了双眼,发现危机解除后,不由大大松了口气,本就虚弱的身子却是愈发虚弱了。\n\n\xa0\xa0\xa0\xa0“现在施展御刀诀果然太勉强了!”\n\n\xa0\xa0\xa0\xa0林尘忍不住喷出一口鲜血,精神疲惫到了就极致,但还是捂着胸口的刀伤,强自挣扎着从坟墓中爬起。\n\n\xa0\xa0\xa0\xa0“你……你……你……”\n\n\xa0\xa0\xa0\xa0蓝衣舌头打卷,宛若见了鬼,刚才的一切难道是出自林尘这个重伤半死的傻子之手?\n\n\xa0\xa0\xa0\xa0这怎么可能?\n\n\xa0\xa0\xa0\xa0林尘一脸冷漠,没有精力去理会蓝衣,好不容易重生一次,他可不想因为失血过多而死。\n\n\xa0\xa0\xa0\xa0捡起蓝衣掉落的佩刀,林尘走到尚未咽气的青衣面前,毫不犹豫的一刀将其斩杀,让其死个痛快,也是给这副身体的原主人报了仇。\n\n\xa0\xa0\xa0\xa0在林尘的识海深处,有一座繁复无比、神秘非常的刀阵弥漫在无边煞气中,隐隐绰绰间,可见无数刀影纵横,刀势冲霄,巍峨磅礴,凛冽雄浑。\n\n\xa0\xa0\xa0\xa0青衣死亡的刹那间,它也随之运转,将杀戮造成的血煞之气尽皆吞噬。\n\n\xa0\xa0\xa0\xa0轰!\n\n\xa0\xa0\xa0\xa0血煞之气中蕴含了青衣的精血与煞气,与以往一样,神秘刀阵仅仅是将煞气吸收,青衣的精血则化为一股股精纯的内气,冲刷修复着重创的身体。\n\n\xa0\xa0\xa0\xa0磅礴的内气以肉眼可见的速度修复着身体的伤势,林尘因施展御刀诀而疲弱的灵魂力也渐渐恢复。\n\n\xa0\xa0\xa0\xa0半个时辰后,林尘睁开双眼。\n\n\xa0\xa0\xa0\xa0“虽然还未痊愈,但已经基本无恙了!”\n\n\xa0\xa0\xa0\xa0林尘有些庆幸,若非有神秘刀阵在,他哪怕侥幸重生一回,也难逃失血而亡!\n\n\xa0\xa0\xa0\xa0不过,话说回来,要不是由于这座神秘刀阵,他堂堂一代杀手之王,也不会无聊的去闯昆仑墟,更不会因此而来到穿越重生。\n\n\xa0\xa0\xa0\xa0他已融合了这具身体的全部记忆,知道这里已经不是华夏,也不是地球其他地方,而是一个叫蛮荒的世界。\n\n\xa0\xa0\xa0\xa0这里武道鼎盛,弱肉强食,强者践踏一切,弱者命如草芥。\n\n\xa0\xa0\xa0\xa0若是一般人,怕是难以适应,但林尘却无甚所谓,身为杀手的他早就适应了残酷的森林法则。\n\n\xa0\xa0\xa0\xa0林尘翻阅着脑海中的记忆,发现蛮荒中一些绝世强者不仅可以翻江倒海,还可以永生不朽,这岂不是跟华夏传说中那些仙人一样?\n\n\xa0\xa0\xa0\xa0“我一定要成为绝世强者,长生不朽!”\n\n\xa0\xa0\xa0\xa0林尘暗自下了决心,死过一次的人才知道死亡的那一刹那有多么可怕。\n\n\xa0\xa0\xa0\xa0不过,强者之路漫漫无期,非一朝一夕,他的注意力还是很快回到痛吟不止的蓝衣身上。\n\n\xa0\xa0\xa0\xa0“说吧,谁派你们来杀我的?”\n\n\xa0\xa0\xa0\xa0林尘目光冰冷,漠然问道。\n\n\xa0\xa0\xa0\xa0望着一步一步走来的林尘,蓝衣如坠冰窟,遍体冷寒,死亡的恐惧笼罩全身,眼前这冷漠的少年还是那个傻子吗?\n\n\xa0\xa0\xa0\xa0“你不……不杀我,我就告……告诉……唔!”\n\n\xa0\xa0\xa0\xa0蓝衣努力的瞪大了双眼,难以置信的捂着鲜血飞溅的咽喉,他条件还未说完,林尘怎么就突然下杀手了?\n\n\xa0\xa0\xa0\xa0“白痴!”\n\n\xa0\xa0\xa0\xa0林尘冷冷一哼,之所以询问蓝衣,不过是为了验证心中的猜测,没想到这家伙妄想跟自己谈条件,够资格么?\n\n\xa0\xa0\xa0\xa0其实,对于幕后黑手,林尘大抵知晓一二。\n\n\xa0\xa0\xa0\xa0他这具身体的原主人智商不怎么高,落得一个傻子的称号,但身份确实不低,乃是云雾湖五大势力中东林岛林家少族长。\n\n\xa0\xa0\xa0\xa0只是其父林天王五年前在给他定下一门亲事之后,便不知所踪,导致一些有野心的人开始蠢蠢欲动。\n\n\xa0\xa0\xa0\xa0其中,尤以林尘的大伯林天霸为最。\n\n\xa0\xa0\xa0\xa0要知道,当年林天霸才是第一顺位继承人,只是后来林天王突然崛起,才取代了林天霸成为林家家主。\n\n\xa0\xa0\xa0\xa0如今林天王消失无踪,生死不知,随着时间推移,林天霸笃定林天王肯定由于不知名的原因死在外面了,其野心也就愈发强强烈了。\n\n\xa0\xa0\xa0\xa0一旦林尘这少族长死了,即便林天霸自己当不了族长,那他儿子林锋也可以当新一任的族长。\n\n\xa0\xa0\xa0\xa0毕竟,林锋可是林家新一代的天才,年仅十七岁便已经是六阶后期的高手了。\n\n\xa0\xa0\xa0\xa0而林尘如今也是十五岁了,不过才二阶而已。\n\n\xa0\xa0\xa0\xa0“不,应是三阶了!”\n\n\xa0\xa0\xa0\xa0伴随着体内内气猛的一震,丹田池中的二阶壁障轰然破开,林尘嘴角泛起一丝笑容。\n\n\xa0\xa0\xa0\xa0识海中的繁复刀阵神秘无比,纵使他研究了许久,也尚未触摸其真容,除了那套玄之又玄的御刀诀外,如今仅仅知道它能够吞噬血煞之气而已。\n\n\xa0\xa0\xa0\xa0青衣与蓝衣都是四阶的武者,将二人的精血炼化,本就处于二阶巅峰的他顺利突破了。\n\n\xa0\xa0\xa0\xa0“这也算是完成你的心愿了。”\n\n\xa0\xa0\xa0\xa0身体的原主人智商有障碍,但也知道实力至上的道理,此番来到黑风岭便是希望通过实战突破,只可惜……\n\n\xa0\xa0\xa0\xa0这时,林尘的脑海中浮现出小姨白无瑕的美丽身影,他知道这是原主人残留的最后一丝不舍。\n\n\xa0\xa0\xa0\xa0毕竟在林天王消失之后,一直都是白无瑕悉心照顾他,为此平日里没少受难,可为了原主人她都默默的承受下来了。\n\n\xa0\xa0\xa0\xa0“安心的去吧,以后我会帮你照顾好她的!”\n\n\xa0\xa0\xa0\xa0随着念头一起,林尘感到全身轻松,以后他就只是他了,不会再受到原主人残留的意念影响。\n\n\xa0\xa0\xa0\xa0站了起来,林尘开始思索以后的方向。\n\n\xa0\xa0\xa0\xa0“林天霸下决心要除掉我了,但在族内有三叔林天武庇护我,这厮还不敢那么嚣张,只敢暗地里进行而已。”\n\n\xa0\xa0\xa0\xa0“不过,明枪易躲,暗箭难防,我目前的修为确实太差,应对危险时自保能力严重不足。”\n\n\xa0\xa0\xa0\xa0沉吟一会儿,林尘就提着刀向着黑风岭深处而去,无论如何先提升实力再说。\n\n\xa0\xa0\xa0\xa0不过,在此此前,他这个从坟墓里爬出来的人,要先找个地方洗澡,去去身上沾染的**味与霉味。\n\n高速文字手打 笔趣阁 狂刀傲世章节列表 http://www.biquger.com/biquge/13688/\n\nqijixs_bottom()'}

    raise ValueError('Missing scheme in request url: %s' % self._url)
ValueError: Missing scheme in request url: javascript:;

# -*- coding: utf-8 -*-
import scrapy


class BiqugerSpider(scrapy.Spider):
    name = 'biquger'
    allowed_domains = ['biquger.com']
    start_urls = ['http://biquger.com/biquge/13688/4753681']

    def parse(self, response):
        titles = response.xpath('//h1/text()').extract_first()
        next_urls = response.xpath('//div[@class="bottem"]/a/@href').extract_first()
        contens = response.xpath('string(//div[@id="booktext"])').extract_first().strip()
        yield {
            'title':titles,
            'conten':contens
        }
        yield scrapy.Request(response.urljoin(next_urls),callback=self.parse)

老师 这个报错什么问题

Python 全系列/第十六阶段:Python 爬虫开发/移动端爬虫开发- 1007楼
Python 全系列/第十六阶段:Python 爬虫开发/动态数据抓取 1008楼

老师,我爬取豆瓣电影代码如下:

from urllib.request import Request
from urllib.request import urlopen
from random import choice
from time import sleep


def get_html(url):
    user_agnet_list = [
        # 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)\
        #  Chrome/80.0.3987.132 Safari/537.36'
        # 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)123456',
        # 'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',
        # 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)',
        # 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)',
        # 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; \
        # .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)',
        # 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
        # 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50(KHTML, like Gecko)\
        #  Version/5.1 Safari/534.50'
        'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
    ]
    choice_agent = choice(user_agnet_list)
    headers = {
        'User-Agent': choice_agent
    }
    request = Request(url, headers=headers)
    response = urlopen(request)
    return response.read().decode()


def save_html(html, filename):
    with open(filename, 'a', encoding='utf-8') as f:
        f.writelines(html)


def main():
    i = 0
    base_url = 'https://movie.douban.com/j/chart/top_list?type=11&interval_id=100%3A90&action=&start={}&limit=20'
    while True:
        url = base_url.format(i * 20)
        html = get_html(url)
        if html == '[]':  # 返回值为[]时表示遍历完成,退出循环
            break
        else:
            print(html)
            save_html(html, 'a.html')
            i += 1
            sleep(3)
    # html=get_html(base_url)
    # print(html)


if __name__ == '__main__':
    main()

刚开始运行还能运行,后面运行提示:

image.png是不是被封ip了?如何解决?


Python 全系列/第十六阶段:Python 爬虫开发/爬虫基础(旧) 1009楼

2020-03-14 16:33:59 [scrapy.utils.log] INFO: Scrapy 2.0.0 started (bot: rockstone)
2020-03-14 16:33:59 [scrapy.utils.log] INFO: Versions: lxml 4.5.0.0, libxml2 2.9.5, cssselect 1.1.0, parsel 1.5.2, w3lib 1.21.0, Twisted 19.10.0, Python 3.7.6 (tags/v3.7.6:43364
a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1d  10 Sep 2019), cryptography 2.8, Platform Windows-10-10.0.18362-SP0
2020-03-14 16:33:59 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor
2020-03-14 16:33:59 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'rockstone',
 'NEWSPIDER_MODULE': 'rockstone.spiders',
 'ROBOTSTXT_OBEY': True,
 'SPIDER_MODULES': ['rockstone.spiders']}
2020-03-14 16:33:59 [scrapy.extensions.telnet] INFO: Telnet Password: 12ce7d6c067a2499
2020-03-14 16:33:59 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
 'scrapy.extensions.telnet.TelnetConsole',
 'scrapy.extensions.logstats.LogStats']
2020-03-14 16:33:59 [scrapy.middleware] INFO: Enabled downloader middlewares:
['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware',
 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
 'scrapy.downloadermiddlewares.retry.RetryMiddleware',
 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
 'scrapy.downloadermiddlewares.stats.DownloaderStats']
2020-03-14 16:33:59 [scrapy.middleware] INFO: Enabled spider middlewares:
['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware',
 'scrapy.spidermiddlewares.referer.RefererMiddleware',
 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
 'scrapy.spidermiddlewares.depth.DepthMiddleware']
2020-03-14 16:33:59 [scrapy.middleware] INFO: Enabled item pipelines:
[]
2020-03-14 16:33:59 [scrapy.core.engine] INFO: Spider opened
2020-03-14 16:33:59 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2020-03-14 16:33:59 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2020-03-14 16:33:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://www.baidu.com/robots.txt> (referer: None)
2020-03-14 16:33:59 [scrapy.downloadermiddlewares.robotstxt] DEBUG: Forbidden by robots.txt: <GET http://www.baidu.com/>
2020-03-14 16:33:59 [scrapy.core.engine] INFO: Closing spider (finished)
2020-03-14 16:33:59 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/exception_count': 1,
 'downloader/exception_type_count/scrapy.exceptions.IgnoreRequest': 1,
 'downloader/request_bytes': 223,
 'downloader/request_count': 1,
 'downloader/request_method_count/GET': 1,
 'downloader/response_bytes': 676,
 'downloader/response_count': 1,
 'downloader/response_status_count/200': 1,
 'elapsed_time_seconds': 0.350322,
 'finish_reason': 'finished',
 'finish_time': datetime.datetime(2020, 3, 14, 8, 33, 59, 677262),
 'log_count/DEBUG': 2,
 'log_count/INFO': 10,
 'response_received_count': 1,
 'robotstxt/forbidden': 1,
 'robotstxt/request_count': 1,
 'robotstxt/response_count': 1,
 'robotstxt/response_status_count/200': 1,
 'scheduler/dequeued': 1,
 'scheduler/dequeued/memory': 1,
 'scheduler/enqueued': 1,
 'scheduler/enqueued/memory': 1,
 'start_time': datetime.datetime(2020, 3, 14, 8, 33, 59, 326940)}
2020-03-14 16:33:59 [scrapy.core.engine] INFO: Spider closed (finished)

老师 我这个按照百度那个测试     没有返回的html信息

Python 全系列/第十六阶段:Python 爬虫开发/移动端爬虫开发- 1011楼

2020-03-14 16:33:59 [scrapy.utils.log] INFO: Scrapy 2.0.0 started (bot: rockstone)
2020-03-14 16:33:59 [scrapy.utils.log] INFO: Versions: lxml 4.5.0.0, libxml2 2.9.5, cssselect 1.1.0, parsel 1.5.2, w3lib 1.21.0, Twisted 19.10.0, Python 3.7.6 (tags/v3.7.6:43364
a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)], pyOpenSSL 19.1.0 (OpenSSL 1.1.1d  10 Sep 2019), cryptography 2.8, Platform Windows-10-10.0.18362-SP0
2020-03-14 16:33:59 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.selectreactor.SelectReactor
2020-03-14 16:33:59 [scrapy.crawler] INFO: Overridden settings:
{'BOT_NAME': 'rockstone',
 'NEWSPIDER_MODULE': 'rockstone.spiders',
 'ROBOTSTXT_OBEY': True,
 'SPIDER_MODULES': ['rockstone.spiders']}
2020-03-14 16:33:59 [scrapy.extensions.telnet] INFO: Telnet Password: 12ce7d6c067a2499
2020-03-14 16:33:59 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.corestats.CoreStats',
 'scrapy.extensions.telnet.TelnetConsole',
 'scrapy.extensions.logstats.LogStats']
2020-03-14 16:33:59 [scrapy.middleware] INFO: Enabled downloader middlewares:
['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware',
 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware',
 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',
 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',
 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware',
 'scrapy.downloadermiddlewares.retry.RetryMiddleware',
 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware',
 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',
 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware',
 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware',
 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware',
 'scrapy.downloadermiddlewares.stats.DownloaderStats']
2020-03-14 16:33:59 [scrapy.middleware] INFO: Enabled spider middlewares:
['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware',
 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware',
 'scrapy.spidermiddlewares.referer.RefererMiddleware',
 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware',
 'scrapy.spidermiddlewares.depth.DepthMiddleware']
2020-03-14 16:33:59 [scrapy.middleware] INFO: Enabled item pipelines:
[]
2020-03-14 16:33:59 [scrapy.core.engine] INFO: Spider opened
2020-03-14 16:33:59 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2020-03-14 16:33:59 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2020-03-14 16:33:59 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://www.baidu.com/robots.txt> (referer: None)
2020-03-14 16:33:59 [scrapy.downloadermiddlewares.robotstxt] DEBUG: Forbidden by robots.txt: <GET http://www.baidu.com/>
2020-03-14 16:33:59 [scrapy.core.engine] INFO: Closing spider (finished)
2020-03-14 16:33:59 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/exception_count': 1,
 'downloader/exception_type_count/scrapy.exceptions.IgnoreRequest': 1,
 'downloader/request_bytes': 223,
 'downloader/request_count': 1,
 'downloader/request_method_count/GET': 1,
 'downloader/response_bytes': 676,
 'downloader/response_count': 1,
 'downloader/response_status_count/200': 1,
 'elapsed_time_seconds': 0.350322,
 'finish_reason': 'finished',
 'finish_time': datetime.datetime(2020, 3, 14, 8, 33, 59, 677262),
 'log_count/DEBUG': 2,
 'log_count/INFO': 10,
 'response_received_count': 1,
 'robotstxt/forbidden': 1,
 'robotstxt/request_count': 1,
 'robotstxt/response_count': 1,
 'robotstxt/response_status_count/200': 1,
 'scheduler/dequeued': 1,
 'scheduler/dequeued/memory': 1,
 'scheduler/enqueued': 1,
 'scheduler/enqueued/memory': 1,
 'start_time': datetime.datetime(2020, 3, 14, 8, 33, 59, 326940)}
2020-03-14 16:33:59 [scrapy.core.engine] INFO: Spider closed (finished)

老师 我这个按照百度那个测试     没有返回的html信息

Python 全系列/第十六阶段:Python 爬虫开发/移动端爬虫开发- 1012楼
Python 全系列/第十六阶段:Python 爬虫开发/移动端爬虫开发- 1013楼
Python 全系列/第十六阶段:Python 爬虫开发/移动端爬虫开发- 1014楼

老师,这是我爬取京东联盟的源码,由于爬取所有的商品信息,例如牙膏有23749这是理论数据值,

理论数据量.png但是实际爬取发现,当爬取到9500条时数据便替换成了其他的数据,如下图,但是我换了另外一个ip进行测试,发现当我从96页开始请求(一页一百条数据),同样也不是牙膏的商品数据,不知道到到底是理论数据不对的问题,还是遭遇了特别的反爬虫,只有牙膏和牙刷数据不对,其他的数据是没有问题(总共有五种商品),具体信息看附件

牙膏1.png然后面试跟我反馈有以下几点问题:

  1. 说我的爬取没有使用价格区分(这里没有理解他的意思)

  2. 牙膏和牙刷数据不全(这里就是上面的那个问题)

  3. 爬取的逻辑不对


解决方法我只能针对第三个问题进行改进,如采用scrapy-redis进行爬取,效率更高,由于没有form_data表单中的searchUUID没有更改(可能是这被反爬了),所以可以更改searchUUID,但是这些理论上只是不完美,逻辑问题上想不出其他的问题。

恳请老师指点!谢谢!

口腔护理.txt

漱口水.txt

牙膏2.txt

牙膏.txt

牙线棒.txt

牙刷.txt

requests
json
time

url=headers={
: ,
: ,
: ,
: ,
:,
:,
:,
:,
:,
:,
:,
:,
:,
:,
:,
:,
}
cat3ids=[,,,,]name={
    :,
    :,
    :,
    :,
    :}
proxy=[,
,
,
,
,
,
,
,
,
]
cat3id cat3ids:
    (.format(name[(cat3id)]))
    payload_data={:,:,:,:{:,:,:cat3id,:,:,:,:,:,:,:,:,:,:}}
    resp=requests.post(url,=json.dumps(payload_data),=headers,={:proxy[]})
    totalCount=resp.json()[][][]f=(.format(name[(cat3id)]),,=)
    i (totalCount//):
        (.format(i+))  payload_data1 = {: i+, : , : ,
                        : {: , : , : cat3id, : ,
                                 : , : , : , : , : , : ,
                                 : , : , : }}
        resp = requests.post(url, =json.dumps(payload_data1), =headers,={:proxy[]})
        contents=resp.json()[][]
        content contents:
            skuname=content[][]
            count=content[][]
            f.write(.format(,,name[(cat3id)],skuname,count))

        time.sleep()
()
    time.sleep()
    payload_data2 = {: (totalCount//)+, : totalCount%, : ,
                     : {: , : , : cat3id, : ,
                              : , : , : , : , : , : ,
                              : , : , : }}
    resp = requests.post(url, =json.dumps(payload_data2), =headers,={:proxy[]})
    contents2 = resp.json()[][]
    content2 contents2:
        skuname2 = content2[][]
        count2 = content2[][]
        f.write(.format(, , name[(cat3id)], skuname2, count2))
    f.close()


Python 全系列/第十六阶段:Python 爬虫开发/动态数据抓取 1015楼

from urllib.request import Request,build_opener,HTTPCookieProcessor
from urllib.parse import urlencode
from fake_useragent import UserAgent
from http.cookiejar import MozillaCookieJar
import ssl
def get_cookie():
    url = 'https://rl.mail.qq.com/cgi-bin/getinvestigate?sid=ucPJvMl86d29Q1wC'
    headers={
        'User-Agent':UserAgent().chrome
    }
    data = {
        'user': '523531642',
        'password': '*********'
    }
    context = ssl._create_unverified_context()
    res = Request(url,headers=headers,data=urlencode(data).encode())
    cookiejar = MozillaCookieJar()
    handler = HTTPCookieProcessor(cookiejar)
    opener = build_opener(handler)
    resp = opener.open(res)
    cookiejar.save('cookie.text',ignore_discard=True,ignore_expires=True)
def use_cookie():
    info_url='https://mail.qq.com'
    headers = {
        'User-Agent': UserAgent().chrome
    }
    context = ssl._create_unverified_context()
    res = Request(info_url, headers=headers, data=urlencode(headers).encode())
    cookiejar = MozillaCookieJar()
    cookiejar.load('cookie.text',ignore_expires=True,ignore_discard=True)
    handler = HTTPCookieProcessor(cookiejar)
    opener = build_opener(handler)
    resp = opener.open(res)
    print(resp.read())
if __name__ == '__main__':
    get_cookie()
    #use_cookie()

老师这个qq邮箱是https   我保存的的cookie文件为什么不行

是登录的url有问题吗?老师我的代码有问题吗?

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This is a generated file!  Do not edit.

.mail.qq.com   TRUE   /  FALSE     qm_sk  
.mail.qq.com   TRUE   /  FALSE     qm_ssum    
.qq.com    TRUE   /  FALSE     qm_sk  
.qq.com    TRUE   /  FALSE     qm_ssum


Python 全系列/第十六阶段:Python 爬虫开发/scrapy框架使用(旧) 1016楼

老师,能不能帮下忙,这是我的一个面试题,实在不知道怎么解决了

https://data.weibo.com/index/newindex?visit_type=trend&wid=1091324264913&dateGroup=3month

要访问这个地址获取中间搜索词为病毒的30天数据,但是他的web端关闭了,只能在手机端上去解决,但是手机端又有ajax请求我实在是解决不了了,拜托拜托

Python 全系列/第十六阶段:Python 爬虫开发/爬虫数据存储 1017楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637