国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

python - Scrapy存在內(nèi)存泄漏的問題。

瀏覽:136日期:2022-06-27 09:37:33

問題描述

再編寫爬蟲的時候,總是跑了一段時間(不會超過12個小時)就會被OOM掉。很是無奈?。?!根據(jù)官方的文檔, 使用這個prefs()但是實在找不出問題的所在。

Live ReferencesHtmlResponse 42 oldest: 753s agoMySuteSpider1 oldest: 2964s agoRequest 32412 oldest: 2920s agoSelector 42 oldest: 751s agoTripItem 37 oldest: 751s ago

爬蟲的處理是獲取所有頁面的a標(biāo)簽的鏈接:

#獲取域名的后綴def get_domain_suffix(domain): if ’com’ in tldextract.extract(domain).suffix:return True return False#拼接域名。只存主域名def save_domain(domain): domain_name = tldextract.extract(domain).domain suffix_name = tldextract.extract(domain).suffix return domain_name + ’.’ + suffix_name#獲取域名ipdef get_domain_ip(domain): try:ip = socket.gethostbyname(domain)return ip except:return ’114.114.114.114’# 獲取域名所在的國家def get_domain_ct_iso(ip): GEO = geoip2.database.Reader(’/var/test/geodb/GeoLite2-City.mmdb’) r = GEO.city(ip) return r.country.iso_codeclass MyDomainSpider(scrapy.Spider): name = ’my_domain’ start_urls = [’http://xxx.com ] def parse_items(self, response):item = TripItem()for url in response.xpath(’//a/@href’).extract(): if url.startswith(’http’): domain = urlparse.urlparse(url).netloc if get_domain_tw(domain) or get_domain_ct_iso(get_domain_ip(domain)) == ’US’:item[’domain’] = save_domain(domain)item[’ip’] = get_domain_ip(domain)item[’datetime’] = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')yield item def parse(self, response):for url in response.xpath(’//a/@href’).extract(): if url.startswith(’http’):domain = urlparse.urlparse(url).netlocif get_domain_tw(domain) or get_domain_ct_iso(get_domain_ip(domain)) == ’US’: yield scrapy.Request(url, callback=self.parse_items)

請指教一下謝謝

問題解答

回答1:

yield item 是不是得落地,存文件或者db,不然一直存內(nèi)存了

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 衡山县| 屏南县| 闸北区| 吉林市| 邵阳县| 枣庄市| 商河县| 怀仁县| 楚雄市| 安西县| 衡东县| 泰州市| 芒康县| 顺平县| 麻城市| 宣化县| 六盘水市| 兴仁县| 浪卡子县| 嘉义市| 鹿邑县| 武平县| 娄烦县| 洛南县| 秀山| 固阳县| 桐梓县| 衡阳市| 安国市| 英德市| 双江| 峨边| 西林县| 富锦市| 乌海市| 儋州市| 尖扎县| 五指山市| 安顺市| 兴国县| 松阳县|