用scrapy做的爬虫总是抓不到数据,这是交互环境下的信息,哪位大神给看看问题出在哪 [问题点数:40分,结帖人Jangle_]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs1
本版专家分:0
结帖率 100%
Bbs5
本版专家分:2919
Bbs1
本版专家分:0
Bbs5
本版专家分:2919
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Blank
GitHub 绑定GitHub第三方账户获取
Bbs1
本版专家分:0
Blank
GitHub 绑定GitHub第三方账户获取
Bbs1
本版专家分:0
Bbs1
本版专家分:0
requests 取网页信息 为什么获取不到信息

利用花瓣网练习获取网页<em>信息</em>,此步骤想获取每个图片的url 网页代码: ![图片说明](https://img-ask.csdn.net/upload/201810/25/1540453448_856699.png) 我的代码: ![图片说明](https://img-ask.csdn.net/upload/201810/25/1540453583_562332.png) 但是输<em>出</em>为空: ![图片说明](https://img-ask.csdn.net/upload/201810/25/1540453635_473534.png) 请问一下哪里<em>出</em>错了,为什么获取<em>不到</em><em>信息</em>,我用.wrapper也不行。 顺便问一下,data-id 应该怎么获取? 谢谢

scrapy爬取网页数据是返回[ ],或者说爬取不到数据的排查方法

可能的原因: 1,ip封锁爬取 2,xpath路径不对 3,xpath路径<em>出</em>现font,tbody标签 4,xpath路径不够明确 5,robot协议 6,请求头封锁 废话不多说,直接上图 1,在dos窗口,输入 <em>scrapy</em> shell https://news.sina.com.cn/gov/xlxw/2019-07-12/doc-ihytcerm3070493.shtml 回车 ...

scrapy-redis所有request爬取完毕,如何解决爬虫空跑问题

<em>scrapy</em>-redis所有request爬取完毕,如何解决<em>爬虫</em>空跑<em>问题</em>?1. 背景 根据<em>scrapy</em>-redis分布式<em>爬虫</em>的原理,多台<em>爬虫</em>主机共享一个爬取队列。当爬取队列中存在request时,<em>爬虫</em>就会取<em>出</em>request进行爬取,如果爬取队列中不存在request时,<em>爬虫</em>就会处于等待状态,行如下:E:\Miniconda\python.exe E:/PyCharmCode/redisClawer

Python 爬虫 status 200 但得不到数据

想爬取赢商网的一些<em>信息</em>,response中是存在<em>信息</em>的。想用request.post来爬,但是得<em>不到</em><em>信息</em>。 ``` import requests import json #%% url = 'http://yzs.winshangdata.com/wsapi/brand/getBrandTuoZhanProvinces' headers = { 'Content-Type': 'application/json;charset=UTF-8', 'Cookie': 'UM_distinctid=16f40179a3117f-08f154d235ffb8-6701b35-11442c-16f40179a322bd; Hm_lvt_f48055ef4cefec1b8213086004a7b78d=1577425731,1577425985,1577426204,1577427086; winfanguser=uid=shumiao888&nid=shumiao888_105711714&logNum=10467&err163=2dde6523ff7cdc29&pwd=06915a38d9e9e87f5ffe745c51d659&headerImg=http://user.winshangdata.com/image/default_20161129.png&sex=0&Email=&IsCompany=0; eyeuser=uid%3dshumiao888%26nid%3dshumiao888_105711714%26logNum%3d10467%26err163%3d2dde6523ff7cdc29%26pwd%3d06915a38d9e9e87f5ffe745c51d659%26headerImg%3dhttp%3a%2f%2fuser.winshangdata.com%2fimage%2fdefault_20161129.png%26sex%3d0%26Email%3d%26IsCompany%3d0; mode=mode; Hm_lpvt_f48055ef4cefec1b8213086004a7b78d=1577430750; JSESSIONID=C6734BEB6CAC2CAEB1DA02BD524B24AF; Hm_lvt_742e37d60ea288bb1d1f445eab6ce50b=1577365684,1577430757,1577430765,1577430801; Hm_lpvt_742e37d60ea288bb1d1f445eab6ce50b=1577430801', 'platform': 'yzs', 'Referer': 'http://yzs.winshangdata.com/', 'Token': 'C334D3A3244400C2E53B431BCF0A6F17.B04B0D7A106EC8A6B9F5704BCE4A9CC9.2019-12-27 15:12:37', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36' } payload = { 'brandId': "4680" } #%% res = requests.post(url, headers, json=payload) #%% result = res.content.decode('utf-8') ``` 错误是这样的。 ![图片说明](https://img-ask.csdn.net/upload/201912/27/1577432213_96048.png)

Scrapy response 请求200 但是返回的页面不完整

python <em>爬虫</em><em>抓</em>取<em>数据</em>时,请求状态码200,但是返回的页面<em>信息</em>不完整

Scrapy实战一:GET方法爬取CSDN主页动态数据

声明:本人也是一个<em>爬虫</em>新手,有些地方可能写的并不好,望各位大佬见谅。第一步:<em>抓</em>包因为是动态页面,所以我们需要通过<em>抓</em>包来找到每次发送的请求内容,以及接口url。 1.这里采用了FIddler工具进行<em>抓</em>包,滚动CSDN主页,查看第一次刷新<em>出</em>来的<em>数据</em>: 2.接下来查看Fiddler工具<em>抓</em>到的请求<em>数据</em>以及接口url: 发送的请求<em>数据</em>: 3.拿到接口url后,放到浏览器上访问一下:https://

scrapy.Request构造请求时,无法得到数据

这可能是因为没有<em>数据</em>的链接被过滤,会影响下边<em>数据</em>的获取。 可尝试在参数中添加 dont_filter=True <em>scrapy</em>.Request(url, self.parse, dont_filter=True) 启用不过滤

scrapy代码运行成功却没有保存到文件中

#**_ <em>scrapy</em>代码运行成功却没有保存到文件中_** **代码**: ![图片说明](https://img-ask.csdn.net/upload/201708/21/1503313313_722770.png) ``` #encoding:utf-8 #!/user/bin/python from <em>scrapy</em>.spider import Spider from <em>scrapy</em>.selector import Selector class DmozSpider(Spider): name = "dmoz" allowed_domains = ["dmoz.org"] start_urls = [ "http://tieba.baidu.com/f?kw=python3&ie=utf-8&pn=50", #"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/" ] def parse(self, response): sel = Selector(response) sites = sel.xpath('.//a[@title]/text()').extract() for i in sites: print ('提示 这是title 提示 这是title 提示 这是title',i) yield items ``` 上面的代码<em>出</em>现了如下错误 ![图片说明](https://img-ask.csdn.net/upload/201708/21/1503313549_239409.png) 把 ``` yield items ``` 改为 yield sites 时,没有报错 但是 123.json文件是空的

scrapy可以成功运行,但不能返回要爬取的文字内容

<em>scrapy</em>可以成功运行不报错但不能返回要爬取的文字内容

scrapy爬虫现 DEBUG: Crawled (404)

为什么会<em>出</em>现解析页面错误呢? ``` 2019-04-17 16:14:46 [<em>scrapy</em>.core.engine] DEBUG: Crawled (404) (referer: http://www.xxx.xx/xxgk/xwzx/zwdt/index_1.htm) 2019-04-17 16:14:46 [<em>scrapy</em>.core.engine] DEBUG: Crawled (404) (referer: http://www.xxx.xx/xxgk/xwzx/zwdt/index_1.htm) 2019-04-17 16:14:46 [<em>scrapy</em>.core.engine] DEBUG: Crawled (404) (referer: http://www.xxx.xx/xxgk/xwzx/zwdt/index_1.htm) 2019-04-17 16:14:46 [<em>scrapy</em>.core.engine] DEBUG: Crawled (404) (referer: http://www.xxx.xx/xxgk/xwzx/zwdt/index_1.htm) 2019-04-17 16:14:46 [<em>scrapy</em>.core.engine] DEBUG: Crawled (404) (referer: http://www.xxx.xx/xxgk/xwzx/zwdt/index_1.htm) ``` 代码在上边,解析一个页面为什么返回了 页面的None,?是网站监测到<em>爬虫</em>了吗?<em>scrapy</em>需要再哪更改headers呢 我尝试了在主程序里更改 然后yield 然而失败了 谢谢各位

不到数据,高手帮忙!

下面是被采集的网址 http://zoldata.finet.cn/h_stock_data/h_stock.php?code=3838&stock_name=中国淀粉&stock_en_name=C

scrapy 中遇到的问题

  2018-08-28 16:09:32 [<em>scrapy</em>.downloadermiddlewares.redirect] DEBUG: Redirecting (302) to &amp;lt;GET http://bj.ganji.com/fang1/3558462755x.htm?adtype=3&amp;gt; from &amp;lt;GET http://jing.58.com/adJump?adType...

scrapy设置代理池

一、手动更新IP池 1.在settings配置文件中新增IP池: [html] view plain copy IPPOOL=[       {"ipaddr":"61.129.70.131:8080"},       {"ipaddr":"61.152.81.193:9100"},       {"ipadd

Scrapy设置之Feeds

Scrapy提供了Feed Exports来保存<em>抓</em>取到的Item,Feed Exports有几种序列化格式和几种存储方式。存储方式:本地文件系统、FTP、S3、标准输<em>出</em>。由FEED_URI选项指定。FEED_URI里面可以有命令参数,例如,ftp://user:password@ftp.example.com/scraping/feeds/%(name)s/%(time)s.json其中,time由

爬虫:Scrapy9 - Feed exports

实现<em>爬虫</em>时最经常提到的需求就是能合适的保存爬取到的<em>数据</em>,或者说,生成一个带有爬取<em>数据</em>的“输<em>出</em>文件”(通常叫“输<em>出</em> feed”),来供其它系统使用。 Scrapy 自带了 Feed 输<em>出</em>,并且支持多种序列化格式(serialization format)及存储方式(storage backends)。 序列化方式(serialization formats) feed 输<em>出</em>使用到了 Item ...

为啥爬虫运行成功但是没有输数据

import requests from lxml import etree # 获取页面源码<em>数据</em> url = 'https://su.58.com/ershoufang/?utm_source=market&spm=u-2d2yxv86y3v43nkddh1.BDPCPZ_BT&PGTID=0d100000-0000-5181-2fa5-ee4c1abecbb9&ClickID=3' \ headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6821.400 QQBrowser/10.3.3040.400' } page_text = requests.get(url=url,headers=headers).text # 实例化etree对象并且将页面源码<em>数据</em>加载到对象中 tree = etree.HTML(page_text) li_list = tree.xpath('//ul[@class="huose-list-wrap"]/li') all_data_list = [] for li in li_list: title = li.xpath('.//div[@class="list-info"]/h2/a/text()')[0] detail_url = li.xpath('.//div[@class="list-info"]/h2/a/@href')[0] if not 'https:' in detail_url: detail_url = 'https:'+detail_url price = li.xpath('.//ul[@class="price"]/p//text()') price = ''.join(price) # 对详情页发起请求,获取页面<em>数据</em> detail_page_text = requests.get(url=detail_url,headers=headers).text tree = etree.HTML(detail_page_text) desc = tree.xpath('.//div[@class="general-item-wrap""]//text()') desc = ''.join(desc).strip("\n\b\t") dic = { 'title':title, 'price':price, 'desc':desc } all_data_list.append(dic) print(all_data_list)

scrapy运行成功输数据但是没有保存

在pipelines.py文件中创建好了保存到mysql、mongodb、或者本地的pipeline,用<em>scrapy</em> crawl xxx运行成功,没有报错,并且控制台成功输<em>出</em><em>数据</em>,但是<em>数据</em>库和本地都没有<em>数据</em>,这时候要考虑的是settings.py里面是不是忘记配置了,如果想保存到mysql,mogodb需要在settings.py里面添加: MONGO_URI = 'localhost' MONG...

Python爬虫系列之----Scrapy(五)网页提取的三种方式(正则,Beautiful Soup,Lxml)

一、提取方式 从网页中提取<em>数据</em>有很多方法,概况起来大概有这么三种方式,首先是正则,然后是流行的Beautiful Soup模块,最后是强大的Lxml模块。 1、正则表达式:最原始的方法,通过编写一些正则表达式,然后从HTML/XML中提取<em>数据</em>。 2、Beautiful Soup模块:Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取<em>数据</em>的 Pyt

scrapy爬某非空网站时,response响应值为200,body却是空的

如题,爬的网站为http://detail.zol.com.cn/index.php?c=SearchList&keyword=%C8%FD%D0%C7&page=1 parse方法中输<em>出</em>response.body 为 b''

爬虫Scrapy框架项目运行时报错!求解决!

E:\JetBrains\PyCharm\mySpider&amp;gt;<em>scrapy</em> crawl itcast -o itcast.json2018-03-26 14:50:23 [<em>scrapy</em>.utils.log] INFO: Scrapy 1.5.0 started (bot: mySpider)2018-03-26 14:50:23 [<em>scrapy</em>.utils.log] INFO: Version...

Python Scrapy 爬虫框架爬取推特信息数据持久化!整理了我三天!

最近要<em>做</em>一个国内外新冠疫情的热点<em>信息</em>的收集系统,所以,需要爬取推特上的一些<em>数据</em>,然后<em>做</em><em>数据</em>分类及情绪分析。作为一名合格的程序员,我们要有「拿来主义精神」,借助别人的轮子来实现自己的项目,而不是从头搭建。 一、<em>爬虫</em>框架Scrapy Scrapy是用Python实现一个为爬取网站<em>数据</em>、提取结构性<em>数据</em>而编写的应用框架。专业的事情交给专业的框架来<em>做</em>,所以,本项目我们确定使用 Scrapy 框架来进行...

使用scrapy爬虫遇到的一些坑:网站常用的反爬虫策略,如何机智的躲过反爬虫Crawled (403)

在这幅图中我们可以很清晰地看到<em>爬虫</em>与反<em>爬虫</em>是如何进行斗智斗勇的。在学习使用<em>爬虫</em>时,我们制作<em>出</em>来的<em>爬虫</em>往往是在“裸奔”,非常的简单。简单低级的<em>爬虫</em>有一个很大的优点:速度快,伪装度低。如果你爬取的网站没有反爬机制,<em>爬虫</em>们可以非常简单粗暴地快速<em>抓</em>取大量<em>数据</em>,但是这样往往就导致一个<em>问题</em>,因为请求过多,很容易造成服务器过载,不能正常工作。于是许多网站为了保护自己的服务器,往往会采用反<em>爬虫</em>技术来“狙击”<em>爬虫</em>,...

关于Scrapy 爬取不到任何数据

一个才接触<em>爬虫</em>的小白 想请教一下大佬们,为什么我根据书上的代码写<em>出</em>来的Spider爬取<em>不到</em>任何<em>数据</em>。 结果如下: 代码如下: # -*- coding:utf-8 -*- import <em>scrapy</em>

python爬虫基础class 3(爬取京东商品姓名和爬取股票信息)

# 京东笔记本 import requests import re import bs4 num = 0 def getHtmlText(url): try: hd = {'user-agent': 'Mozilla/5.0'} r = requests.get(url, headers=hd, timeout=...

非常简单的scrapy代码但就是不清楚到底哪里问题了,高手帮忙看看吧!

News_spider文件 # -*- coding: utf-8 -*- import <em>scrapy</em> import re from <em>scrapy</em> import Selector from News.items import NewsItem class NewsSpiderSpider(<em>scrapy</em>.Spider): name = "news_spider" allowed_domains = ["http://18.92.0.1"] start_urls = ['http://18.92.0.1/contents/7/121174.html'] def parse_detail(self, response): sel = Selector(response) items = [] item = NewsItem() item['title'] = sel.css('.div_bt::text').extract()[0] characters = sel.css('.div_zz::text').extract()[0].replace("\xa0","") pattern = re.compile('[:].*[ ]') result = pattern.search(characters) item['post'] = result.group().replace(":","").strip() pattern = re.compile('[ ][^发]*') result = pattern.search(characters) item['approver'] = result.group() pattern = re.compile('[201].{9}') result = pattern.search(characters) item['date_of_publication'] = result.group() pattern = re.compile('([0-9]+)$') result = pattern.search(characters) item['browse_times'] = result.group() content = sel.css('.xwnr').extract()[0] pattern = re.compile('[\u4e00-\u9fa5]|[,、。“”]') result = pattern.findall(content) item['content'] = ''.join(result).replace("仿宋"," ").replace("宋体"," ").replace("楷体"," ") item['img1_url'] = sel.xpath('//*[@id="newpic"]/div[1]/div[1]/img/@src').extract()[0] item['img1_name'] = sel.xpath('//*[@id="newpic"]/div[1]/div[2]/text()').extract()[0] item['img2_url'] = sel.xpath('//*[@id="newpic"]/div[2]/div[1]/img/@src').extract()[0] item['img2_name'] = sel.xpath('//*[@id="newpic"]/div[2]/div[2]').extract()[0] item['img3_url'] = sel.xpath('//*[@id="newpic"]/div[3]/div[1]/img/@src').extract()[0] item['img3_name'] = sel.xpath('//*[@id="newpic"]/div[3]/div[2]/text()').extract()[0] item['img4_url'] = sel.xpath('//*[@id="newpic"]/div[4]/div[1]/img/@src').extract()[0] item['img4_name'] = sel.xpath('//*[@id="newpic"]/div[4]/div[2]/text()').extract()[0] item['img5_url'] = sel.xpath('//*[@id="newpic"]/div[5]/div[1]/img/@src').extract()[0] item['img5_name'] = sel.xpath('//*[@id="newpic"]/div[5]/div[2]/text()').extract()[0] item['img6_url'] = sel.xpath('//*[@id="newpic"]/div[6]/div[1]/img/@src').extract()[0] item['img6_name'] = sel.xpath('//*[@id="newpic"]/div[6]/div[2]/text()').extract()[0] characters = sel.xpath('/html/body/div/div[2]/div[4]/div[4]/text()').extract()[0].replace("\xa0","") pattern = re.compile('[:].*?[ ]') result = pattern.search(characters) item['company'] = result.group().replace(":", "").strip() pattern = re.compile('[ ][^联]*') result = pattern.search(characters) item['writer_photography'] = result.group() pattern = re.compile('(([0-9]|[-])+)$') result = pattern.search(characters) item['tel'] = result.group() items.append(item) items文件 return items import <em>scrapy</em> class NewsItem(<em>scrapy</em>.Item): title = <em>scrapy</em>.Field() post = <em>scrapy</em>.Field() approver = <em>scrapy</em>.Field() date_of_publication = <em>scrapy</em>.Field() browse_times = <em>scrapy</em>.Field() content = <em>scrapy</em>.Field() img1_url = <em>scrapy</em>.Field() img1_name = <em>scrapy</em>.Field() img2_url = <em>scrapy</em>.Field() img2_name = <em>scrapy</em>.Field() img3_url = <em>scrapy</em>.Field() img3_name = <em>scrapy</em>.Field() img4_url = <em>scrapy</em>.Field() img4_name = <em>scrapy</em>.Field() img5_url = <em>scrapy</em>.Field() img5_name = <em>scrapy</em>.Field() img6_url = <em>scrapy</em>.Field() img6_name = <em>scrapy</em>.Field() company = <em>scrapy</em>.Field() writer_photography = <em>scrapy</em>.Field() tel = <em>scrapy</em>.Field() pipelines文件 import MySQLdb import MySQLdb.cursors class NewsPipeline(object): def process_item(self, item, spider): return item class MysqlPipeline(object): def __init__(self): self.conn = MySQLdb.connect('192.168.254.129','root','root','news',charset="utf8",use_unicode=True) self.cursor = self.conn.cursor() def process_item(self, item, spider): insert_sql = "insert into news_table(title,post,approver,date_of_publication,browse_times,content,img1_url,img1_name,img2_url,img2_name,img3_url,img3_name,img4_url,img4_name,img5_url,img5_name,img6_url,img6_name,company,writer_photography,tel)VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" self.cursor.execute(insert_sql,(item['title'],item['post'],item['approver'],item['date_of_publication'],item['browse_times'],item['content'],item['img1_url'],item['img1_name'],item['img1_url'],item['img1_name'],item['img2_url'],item['img2_name'],item['img3_url'],item['img3_name'],item['img4_url'],item['img4_name'],item['img5_url'],item['img5_name'],item['img6_url'],item['img6_name'],item['company'],item['writer_photography'],item['tel'])) self.conn.commit() setting文件 BOT_NAME = 'News' SPIDER_MODULES = ['News.spiders'] NEWSPIDER_MODULE = 'News.spiders' ROBOTSTXT_OBEY = False COOKIES_ENABLED = True ITEM_PIPELINES = { #'News.pipelines.NewsPipeline': 300, 'News.pipelines.MysqlPipeline': 300, } /usr/bin/python3.5 /home/pzs/PycharmProjects/News/main.py 2017-04-08 11:00:12 [<em>scrapy</em>.utils.log] INFO: Scrapy 1.3.3 started (bot: News) 2017-04-08 11:00:12 [<em>scrapy</em>.utils.log] INFO: Overridden settings: {'BOT_NAME': 'News', 'SPIDER_MODULES': ['News.spiders'], 'NEWSPIDER_MODULE': 'News.spiders'} 2017-04-08 11:00:12 [<em>scrapy</em>.middleware] INFO: Enabled extensions: ['<em>scrapy</em>.extensions.telnet.TelnetConsole', '<em>scrapy</em>.extensions.corestats.CoreStats', '<em>scrapy</em>.extensions.logstats.LogStats'] 2017-04-08 11:00:12 [<em>scrapy</em>.middleware] INFO: Enabled downloader middlewares: ['<em>scrapy</em>.downloadermiddlewares.httpauth.HttpAuthMiddleware', '<em>scrapy</em>.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', '<em>scrapy</em>.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', '<em>scrapy</em>.downloadermiddlewares.useragent.UserAgentMiddleware', '<em>scrapy</em>.downloadermiddlewares.retry.RetryMiddleware', '<em>scrapy</em>.downloadermiddlewares.redirect.MetaRefreshMiddleware', '<em>scrapy</em>.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', '<em>scrapy</em>.downloadermiddlewares.redirect.RedirectMiddleware', '<em>scrapy</em>.downloadermiddlewares.cookies.CookiesMiddleware', '<em>scrapy</em>.downloadermiddlewares.stats.DownloaderStats'] 2017-04-08 11:00:12 [<em>scrapy</em>.middleware] INFO: Enabled spider middlewares: ['<em>scrapy</em>.spidermiddlewares.httperror.HttpErrorMiddleware', '<em>scrapy</em>.spidermiddlewares.offsite.OffsiteMiddleware', '<em>scrapy</em>.spidermiddlewares.referer.RefererMiddleware', '<em>scrapy</em>.spidermiddlewares.urllength.UrlLengthMiddleware', '<em>scrapy</em>.spidermiddlewares.depth.DepthMiddleware'] 2017-04-08 11:00:12 [<em>scrapy</em>.middleware] INFO: Enabled item pipelines: ['News.pipelines.MysqlPipeline'] 2017-04-08 11:00:12 [<em>scrapy</em>.core.engine] INFO: Spider opened 2017-04-08 11:00:12 [<em>scrapy</em>.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2017-04-08 11:00:12 [<em>scrapy</em>.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023 2017-04-08 11:00:13 [<em>scrapy</em>.core.engine] DEBUG: Crawled (200) (referer: None) 2017-04-08 11:00:13 [<em>scrapy</em>.core.scraper] ERROR: Spider error processing (referer: None) Traceback (most recent call last): File "/usr/local/lib/python3.5/dist-packages/twisted/internet/defer.py", line 653, in _runCallbacks current.result = callback(current.result, *args, **kw) File "/usr/local/lib/python3.5/dist-packages/<em>scrapy</em>/spiders/__init__.py", line 76, in parse raise NotImplementedError NotImplementedError 2017-04-08 11:00:13 [<em>scrapy</em>.core.engine] INFO: Closing spider (finished) 2017-04-08 11:00:13 [<em>scrapy</em>.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 229, 'downloader/request_count': 1, 'downloader/request_method_count/GET': 1, 'downloader/response_bytes': 16609, 'downloader/response_count': 1, 'downloader/response_status_count/200': 1, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2017, 4, 8, 18, 0, 13, 938637), 'log_count/DEBUG': 2, 'log_count/ERROR': 1, 'log_count/INFO': 7, 'response_received_count': 1, 'scheduler/dequeued': 1, 'scheduler/dequeued/memory': 1, 'scheduler/enqueued': 1, 'scheduler/enqueued/memory': 1, 'spider_exceptions/NotImplementedError': 1, 'start_time': datetime.datetime(2017, 4, 8, 18, 0, 12, 917719)} 2017-04-08 11:00:13 [<em>scrapy</em>.core.engine] INFO: Spider closed (finished) Process finished with exit code 0 直接运行会弹<em>出</em>NotImplementedError错误,单步调试也看不<em>出</em>到底哪里<em>出</em>了<em>问题</em>

Scrapy0.24.1_中文文档

Scrapy 0.25 文档 本文档涵盖了所有Scrapy的内容。 获得帮助 遇到<em>问题</em>了?我们来帮您! 查看下 FAQ ,这里有些常见的<em>问题</em>的解决办法。 寻找详细的<em>信息</em>?试试 索引 或者 模块索引 。 您可以在 <em>scrapy</em>-users的邮件列表 中寻找内容,或者 提问<em>问题</em> 在 #<em>scrapy</em> IRC channel 提问 在 issue tracker 中提交Scrapy的bug...

python爬虫:为什么用requests可以爬到数据,用scrapy爬到数据为空?

"http://detail.zol.com.cn/index.php?c=SearchList&keyword=%C8%FD%D0%C7&page=1" 用requests可以爬到<em>数据</em>,<em>scrapy</em>爬的状态码是200,但响应没有<em>数据</em>,什么原因?

股票数据scrapy爬虫自MOOC的课程《python网络爬虫信息提取》),数据失败

我是跟着MOOC上《python网络<em>爬虫</em>与<em>信息</em>提取》学<em>爬虫</em>(http://www.icourse163.org/course/BIT-1001870001)。其中第四周课程有个用<em>scrapy</em>爬取股票数

关于scrapy爬虫使用的一些小经验和注意事项

关于<em>scrapy</em><em>爬虫</em>使用的一些小经验和注意事项 1. 图片下载的设置 class ClawernameSpider(<em>scrapy</em>.Spider): # 定制化设置 custom_settings = { 'LOG_LEVEL': 'DEBUG', # Log等级,默认是最低级别debug 'ROBOTSTXT_OBEY': False,

scrapy-redis分布式爬虫的搭建过程(理论篇)

<em>scrapy</em>-redis分布式<em>爬虫</em>的搭建过程(理论篇) 1. 背景 Scrapy 是一个通用的<em>爬虫</em>框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件)。 2. <em>环境</em> 系统:win7 <em>scrapy</em>-redis redis 3.0.5 python 3.6.1 3. 原理 3.1.

一个简单的scrapy爬虫

写好了一个<em>爬虫</em>Demo,准备小试牛刀,执行过程中遇到如下<em>问题</em> 第一步 C:\Users\Administrator\PycharmProjects\mySpider\mySpiderOne\mySpiderOne><em>scrapy</em> c rawl tiebaSpider 2017-08-22 23:44:26 [<em>scrapy</em>.utils.log] INFO: Scrapy 1.4.0 s

Scrapy爬取下来的数据不全,为什么总会有遗漏?

本人小白一枚,刚接触Scrapy框架没多久,写了一个简单的Spider,但是发现每一次爬取后的结果都比网页上的真实<em>数据</em>量要少,比如网站上一共有100条,但我爬下来的结果一般会少几条至几十条不等,很少有100条齐的时候。 整个<em>爬虫</em>有两部分,一部分是页面的横向爬取(进入下一页),另一个是纵向的爬取(进入页面中每一产品的详细页面)。之前我一直以为是pipelines存储到excel的时候<em>数据</em>丢失了,后来经过Debug调试,发现是在Spider中,<em>数据</em>就遗漏了,def parse函数中的item数量是齐的,包括yield Request加入到队列中,但是调用def parse_item函数时,就有些产品的详细页面无法进入。这是什么原因呢,是因为Scrapy异步加载受网速之类的影响么,本身就有缺陷,还是说是我设计上面的<em>问题</em>?有什么解决的方法么,不然<em>数据</em>量一大那丢失的不是就很严重么。 求帮助,谢谢各位了。 ``` class MyFirstSpider(Spider): name = "MyFirstSpider" allowed_doamins = ["e-shenhua.com"] start_urls = ["https://www.e-shenhua.com/ec/auction/oilAuctionList.jsp?_DARGS=/ec/auction/oilAuctionList.jsp"] url = 'https://www.e-shenhua.com/ec/auction/oilAuctionList.jsp' def parse(self, response): items = [] selector = Selector(response) contents = selector.xpath('//table[@class="table expandable table-striped"]/tbody/tr') urldomain = 'https://www.e-shenhua.com' for content in contents: item = CyfirstItem() productId = content.xpath('td/a/text()').extract()[0].strip() productUrl = content.xpath('td/a/@href').extract()[0] totalUrl = urldomain + productUrl productName = content.xpath('td/a/text()').extract()[1].strip() deliveryArea = content.xpath('td/text()').extract()[-5].strip() saleUnit = content.xpath('td/text()').extract()[-4] item['productId'] = productId item['totalUrl'] = totalUrl item['productName'] = productName item['deliveryArea'] = deliveryArea item['saleUnit'] = saleUnit items.append(item) print(len(items)) # **************进入每个产品的子网页 for item in items: yield Request(item['totalUrl'],meta={'item':item},callback=self.parse_item) # print(item['productId']) # 下一页的跳转 nowpage = selector.xpath('//div[@class="pagination pagination-small"]/ul/li[@class="active"]/a/text()').extract()[0] nextpage = int(nowpage) + 1 str_nextpage = str(nextpage) nextLink = selector.xpath('//div[@class="pagination pagination-small"]/ul/li[last()]/a/@onclick').extract() if (len(nextLink)): yield <em>scrapy</em>.FormRequest.from_response(response, formdata={ *************** }, callback = self.parse ) # 产品子网页内容的<em>抓</em>取 def parse_item(self,response): sel = Selector(response) item = response.meta['item'] # print(item['productId']) productInfo = sel.xpath('//div[@id="content-products-info"]/table/tbody/tr') titalBidQty = ''.join(productInfo.xpath('td[3]/text()').extract()).strip() titalBidUnit = ''.join(productInfo.xpath('td[3]/span/text()').extract()) titalBid = titalBidQty + " " +titalBidUnit minBuyQty = ''.join(productInfo.xpath('td[4]/text()').extract()).strip() minBuyUnit = ''.join(productInfo.xpath('td[4]/span/text()').extract()) minBuy = minBuyQty + " " + minBuyUnit isminVarUnit = ''.join(sel.xpath('//div[@id="content-products-info"]/table/thead/tr/th[5]/text()').extract()) if(isminVarUnit == '最小变量单位'): minVarUnitsl = ''.join(productInfo.xpath('td[5]/text()').extract()).strip() minVarUnitdw = ''.join(productInfo.xpath('td[5]/span/text()').extract()) minVarUnit = minVarUnitsl + " " + minVarUnitdw startPrice = ''.join(productInfo.xpath('td[6]/text()').extract()).strip().rstrip('/') minAddUnit = ''.join(productInfo.xpath('td[7]/text()').extract()).strip() else: minVarUnit = '' startPrice = ''.join(productInfo.xpath('td[5]/text()').extract()).strip().rstrip('/') minAddUnit = ''.join(productInfo.xpath('td[6]/text()').extract()).strip() item['titalBid'] = titalBid item['minBuyQty'] = minBuy item['minVarUnit'] = minVarUnit item['startPrice'] = startPrice item['minAddUnit'] = minAddUnit # print(item) return item ```

scrapy 运行抛NotImplementedError,请问一般什么原因造成呢?

/usr/bin/python3.5 /home/pzs/PycharmProjects/News/main.py 2017-04-08 11:00:12 [<em>scrapy</em>.utils.log] INFO: Scrapy 1.3.3 started (bot: News) 2017-04-08 11:00:12 [<em>scrapy</em>.utils.log] INFO: Overridden settings: {'BOT_NAME': 'News', 'SPIDER_MODULES': ['News.spiders'], 'NEWSPIDER_MODULE': 'News.spiders'} 2017-04-08 11:00:12 [<em>scrapy</em>.middleware] INFO: Enabled extensions: ['<em>scrapy</em>.extensions.telnet.TelnetConsole',  '<em>scrapy</em>.extensions.corestats.CoreStats',  '<em>scrapy</em>.extensions.logstats.LogStats'] 2017-04-08 11:00:12 [<em>scrapy</em>.middleware] INFO: Enabled downloader middlewares: ['<em>scrapy</em>.downloadermiddlewares.httpauth.HttpAuthMiddleware',  '<em>scrapy</em>.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware',  '<em>scrapy</em>.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware',  '<em>scrapy</em>.downloadermiddlewares.useragent.UserAgentMiddleware',  '<em>scrapy</em>.downloadermiddlewares.retry.RetryMiddleware',  '<em>scrapy</em>.downloadermiddlewares.redirect.MetaRefreshMiddleware',  '<em>scrapy</em>.downloadermiddlewares.httpcompression.HttpCompressionMiddleware',  '<em>scrapy</em>.downloadermiddlewares.redirect.RedirectMiddleware',  '<em>scrapy</em>.downloadermiddlewares.cookies.CookiesMiddleware',  '<em>scrapy</em>.downloadermiddlewares.stats.DownloaderStats'] 2017-04-08 11:00:12 [<em>scrapy</em>.middleware] INFO: Enabled spider middlewares: ['<em>scrapy</em>.spidermiddlewares.httperror.HttpErrorMiddleware',  '<em>scrapy</em>.spidermiddlewares.offsite.OffsiteMiddleware',  '<em>scrapy</em>.spidermiddlewares.referer.RefererMiddleware',  '<em>scrapy</em>.spidermiddlewares.urllength.UrlLengthMiddleware',  '<em>scrapy</em>.spidermiddlewares.depth.DepthMiddleware'] 2017-04-08 11:00:12 [<em>scrapy</em>.middleware] INFO: Enabled item pipelines: ['News.pipelines.MysqlPipeline'] 2017-04-08 11:00:12 [<em>scrapy</em>.core.engine] INFO: Spider opened 2017-04-08 11:00:12 [<em>scrapy</em>.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2017-04-08 11:00:12 [<em>scrapy</em>.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023 2017-04-08 11:00:13 [<em>scrapy</em>.core.engine] DEBUG: Crawled (200) (referer: None) 2017-04-08 11:00:13 [<em>scrapy</em>.core.scraper] ERROR: Spider error processing (referer: None) Traceback (most recent call last):   File "/usr/local/lib/python3.5/dist-packages/twisted/internet/defer.py", line 653, in _runCallbacks     current.result = callback(current.result, *args, **kw)   File "/usr/local/lib/python3.5/dist-packages/<em>scrapy</em>/spiders/__init__.py", line 76, in parse     raise NotImplementedError NotImplementedError 2017-04-08 11:00:13 [<em>scrapy</em>.core.engine] INFO: Closing spider (finished) 2017-04-08 11:00:13 [<em>scrapy</em>.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 229,  'downloader/request_count': 1,  'downloader/request_method_count/GET': 1,  'downloader/response_bytes': 16609,  'downloader/response_count': 1,  'downloader/response_status_count/200': 1,  'finish_reason': 'finished',  'finish_time': datetime.datetime(2017, 4, 8, 18, 0, 13, 938637),  'log_count/DEBUG': 2,  'log_count/ERROR': 1,  'log_count/INFO': 7,  'response_received_count': 1,  'scheduler/dequeued': 1,  'scheduler/dequeued/memory': 1,  'scheduler/enqueued': 1,  'scheduler/enqueued/memory': 1,  'spider_exceptions/NotImplementedError': 1,  'start_time': datetime.datetime(2017, 4, 8, 18, 0, 12, 917719)} 2017-04-08 11:00:13 [<em>scrapy</em>.core.engine] INFO: Spider closed (finished) Process finished with exit code 0 直接运行会弹<em>出</em>NotImplementedError错误,单步调试也看不<em>出</em>到底哪里<em>出</em>了<em>问题</em>

python2.7爬虫使用scrapy框架时问题

源代码: # -*- coding:utf-8 -*- from <em>scrapy</em>.spiders import CrawlSpider class Douban(CrawlSpider): name =

针对Logstash吞吐量一次优化

Logstash性能优化:场景:      部署节点配置极其牛逼(三台 48核 256G内存 万兆网卡的机器),ES性能未达到瓶颈,而filebeat又有源源不断的日志在推送(日志堆积),此时却发现ES吞吐量怎么也上不去,基本卡在单logstash 7000/s 的吞吐。      这时候我们基本确定瓶颈在logstash上。logstash部署在服务端,主要处理接收filebeat(部署在节点机

Scrapy 如何正确配置、验证xpath?

[题记]:xpath难点在使用<em>scrapy</em><em>做</em>爬取网页的时候,规则的匹配是关键。如:sel.xpath(‘//ul[@id=”dirlist”]/li/dl/dt’)的正确配置。 如何进行xpath的正确配置呢? Scrapy shell<em>交互</em>终端是一个可供较快调试、验证配置结果的好工具。1、Scrapy Shell介绍Scrapy终端是一个<em>交互</em>终端,供您在未启动spider的情况下尝试及调试您的爬

聊聊Flume和Logstash的那些事儿

在某个Logstash的场景下,我产生了为什么不能用Flume代替Logstash的疑问,因此查阅了不少材料在这里总结,大部分都是前人的工作经验下,加了一些我自己的思考在里面,希望对大家有帮助。 本文适合有一定大<em>数据</em>基础的读者朋友们阅读,但如果你没有技术基础,照样可以继续看(这就好比你看《葵花宝典》第一页:欲练此功,必先自宫,然后翻到第二页:若不自宫,也可练功,没错就是这种感觉→_→)。

Logstash简单介绍

Logstash入门介绍   一、Logstash简介

logstash日志解析求一个grok正则表达式

10.77.102.130 id=tos time="2019-08-21 18:22:15" fw=TopsecOS pri=7 日志例子如上,要求输<em>出</em>成下面的样子,正则表达式应该怎么写。是不是要写自定义正则?求大佬帮助!!! ![图片说明](https://img-ask.csdn.net/upload/201908/27/1566886051_980962.png) 像图2 一个字段一个值的隔行输<em>出</em> 比如"host" => "localhost" id=tos就输<em>出</em>成"id"="tos"单独为一行 fw=TopsecOS就输<em>出</em>成"fw"="TopsecOS"单独为一行 ![图片说明](https://img-ask.csdn.net/upload/201908/27/1566895127_803941.png)

ELK中logstash的使用

logstash的处理过程logstash在处理日志的整个过程是一个流的形式,按照 input -> filter-> output 这样的顺序进行。 (严格的说法是input -> decode -> filter -> encode -> output 这样的一个流,这里为了便于说明,简略下) 如图: input:负责日志的接收,服务端角色。比如收集各服务器的nginx日志,MySQL日志

python3-Scrapy教程

本文将涉及以下内容:    0. Scrapy安装;    1. 创建Scrapy项目;    2. 写一个spider来爬取网页并提取<em>数据</em>;    3. 用命令行来输<em>出</em>爬到的<em>数据</em>;    4. 修改spider来递归跟踪连接;    5. 使用spider参数;安装:如果你是使用Anaconda,可以通过conda-forge通道安装:conda install -c conda-forge s...

logstash 处理tomcat日志

logstash 处理tomcat日志

Logstash设置+ElasticSearch部署

Logstash 什么是Logstash:是一个轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义处理,然后传输到指定的位置,比如某个服务器或者问价。 用途:把<em>数据</em>库<em>数据</em>同步到索引库中。 使用方式: 第一步:使用cmd进入软件目录下的bin文件夹下。 第二步:执行指令logstash -e(表示直接写执行命令,-f表示我要执行的是一个文件) ’ input { st...

scrapy常用设置参考手册

内置设置参考 以下是所有可用Scrapy设置的列表,按字母顺序排列,以及它们的默认值和适用范围。 范围(如果可用)显示设置的使用位置,如果它与任何特定组件相关联。在那种情况下,将显示该组件的模块,通常是扩展,中间件或管道。它还意味着必须启用该组件才能使设置产生任何效果。 AWS_ACCESS_KEY_ID 默认:None 需要访问Amazon Web服务的代码使用的AWS访问密钥,例如...

Parsing Logs with Logstash

Logstash is an open source, server-side data processing pipeline that ingests data from a multitude of sources simultaneously, transforms it, and then sends it to your favorite "stash". Configuring F...

python scrapy爬虫 取的内容只有一条,怎么破??

目标URL:http://218.92.23.142/sjsz/szxx/Index.aspx(工作需要) 主要目的是爬取网站中的信件类型、信件主题、写信时间、回复时间、回复状态以及其中链接里面的具体内容,然后保存到excel表格中。里面的链接全部都是POST方法,没有<em>出</em>现一个具体的链接,所以我感觉非常恼火。 目前碰到的<em>问题</em>: 1、 但是我只能<em>抓</em>到第一条的<em>信息</em>,后面就<em>抓</em><em>不到</em>了。具体是这条:市长您好: 我是一名事... 2、 <em>scrapy</em>运行后<em>出</em>现的<em>信息</em>是: 15:01:33 [<em>scrapy</em>] INFO: Scrapy 1.0.3 started (bot: spider2) 2016-01-13 15:01:33 [<em>scrapy</em>] INFO: Optional features available: ssl, http11 2016-01-13 15:01:33 [<em>scrapy</em>] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'spider2.spiders', 'FEED_URI': u'file:///F:/\u5feb\u76d8/workspace/Pythontest/src/Scrapy/spider2/szxx.csv', 'SPIDER_MODULES': ['spider2.spiders'], 'BOT_NAME': 'spider2', 'USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5', 'FEED_FORMAT': 'CSV'} 2016-01-13 15:01:36 [<em>scrapy</em>] INFO: Enabled extensions: CloseSpider, FeedExporter, TelnetConsole, LogStats, CoreStats, SpiderState 2016-01-13 15:01:38 [<em>scrapy</em>] INFO: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware, HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddleware, ChunkedTransferMiddleware, DownloaderStats 2016-01-13 15:01:38 [<em>scrapy</em>] INFO: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware 2016-01-13 15:01:38 [<em>scrapy</em>] INFO: Enabled item pipelines: 2016-01-13 15:01:38 [<em>scrapy</em>] INFO: Spider opened 2016-01-13 15:01:38 [<em>scrapy</em>] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2016-01-13 15:01:38 [<em>scrapy</em>] DEBUG: Telnet console listening on 127.0.0.1:6023 2016-01-13 15:01:39 [<em>scrapy</em>] DEBUG: Crawled (200) (referer: None) 2016-01-13 15:01:39 [<em>scrapy</em>] DEBUG: Filtered duplicate request: - no more duplicates will be shown (see DUPEFILTER_DEBUG to show all duplicates) 2016-01-13 15:01:39 [<em>scrapy</em>] DEBUG: Crawled (200) (referer: http://218.92.23.142/sjsz/szxx/Index.aspx) 2016-01-13 15:01:39 [<em>scrapy</em>] DEBUG: Crawled (200) (referer: http://218.92.23.142/sjsz/szxx/Index.aspx) 2016-01-13 15:01:39 [<em>scrapy</em>] DEBUG: Redirecting (302) to from 2016-01-13 15:01:39 [<em>scrapy</em>] DEBUG: Crawled (200) (referer: http://218.92.23.142/sjsz/szxx/Index.aspx) 2016-01-13 15:01:39 [<em>scrapy</em>] DEBUG: Scraped from 第一条的<em>信息</em>(太多了,就省略了。。。。) 2016-01-13 15:01:39 [<em>scrapy</em>] DEBUG: Crawled (200) (referer: http://218.92.23.142/sjsz/szxx/Index.aspx) ………… 后面的差不多,就不写<em>出</em>来了 2016-01-13 15:01:41 [<em>scrapy</em>] INFO: Stored csv feed (1 items) in: file:///F:/快盘/workspace/Pythontest/src/Scrapy/spider2/szxx.csv 2016-01-13 15:01:41 [<em>scrapy</em>] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 56383, 'downloader/request_count': 17, 'downloader/request_method_count/GET': 3, 'downloader/request_method_count/POST': 14, 'downloader/response_bytes': 118855, 'downloader/response_count': 17, 'downloader/response_status_count/200': 16, 'downloader/response_status_count/302': 1, 'dupefilter/filtered': 120, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2016, 1, 13, 7, 1, 41, 716000), 'item_scraped_count': 1, 'log_count/DEBUG': 20, 'log_count/INFO': 8, 'request_depth_max': 14, 'response_received_count': 16, 'scheduler/dequeued': 17, 'scheduler/dequeued/memory': 17, 'scheduler/enqueued': 17, 'scheduler/enqueued/memory': 17, 'start_time': datetime.datetime(2016, 1, 13, 7, 1, 38, 670000)} 2016-01-13 15:01:41 [<em>scrapy</em>] INFO: Spider closed (finished) 具体的代码如下(代码写的不好,误喷): import sys, copy reload(sys) sys.setdefaultencoding('utf-8') sys.path.append("../") from <em>scrapy</em>.spiders import CrawlSpider from <em>scrapy</em>.http import FormRequest, Request from <em>scrapy</em>.selector import Selector from items import Spider2Item class Domeszxx(CrawlSpider): name = "szxx" allowed_domain = ["218.92.23.142"] start_urls = ["http://218.92.23.142/sjsz/szxx/Index.aspx"] item = Spider2Item() def parse(self, response): selector = Selector(response) # 获得下一页的POST参数 viewstate = ''.join(selector.xpath('//input[@id="__VIEWSTATE"]/@value').extract()[0]) eventvalidation = ''.join(selector.xpath('//input[@id="__EVENTVALIDATION"]/@value').extract()[0]) nextpage = ''.join( selector.xpath('//input[@name="ctl00$ContentPlaceHolder1$GridView1$ctl12$txtGoPage"]/@value').extract()) nextpage_data = { '__EVENTTARGET': 'ctl00$ContentPlaceHolder1$GridView1$ctl12$cmdNext', '__EVENTARGUMENT': '', '__VIEWSTATE': viewstate, '__VIEWSTATEGENERATOR': '9DEFE542', '__EVENTVALIDATION': eventvalidation, 'ctl00$ContentPlaceHolder1$GridView1$ctl12$txtGoPage': nextpage } # 获得<em>抓</em>取当前内容的xpath xjlx = ".//*[@id='ContentPlaceHolder1_GridView1_Label2_" xjzt = ".//*[@id='ContentPlaceHolder1_GridView1_LinkButton5_" xxsj = ".//*[@id='ContentPlaceHolder1_GridView1_Label4_" hfsj = ".//*[@id='ContentPlaceHolder1_GridView1_Label5_" nextlink = '//*[@id="ContentPlaceHolder1_GridView1_cmdNext"]/@href' # 获取当前页面公开答复的行数 listnum = len(selector.xpath('//tr')) - 2 # 获得<em>抓</em>取内容 for i in range(0, listnum): item_all = {} xjlx_xpath = xjlx + str(i) + "']/text()" xjzt_xpath = xjzt + str(i) + "']/text()" xxsj_xpath = xxsj + str(i) + "']/text()" hfsj_xpath = hfsj + str(i) + "']/text()" # 信件类型 item_all['xjlx'] = selector.xpath(xjlx_xpath).extract()[0].decode('utf-8').encode('gbk') # 信件主题 item_all['xjzt'] = str(selector.xpath(xjzt_xpath).extract()[0].decode('utf-8').encode('gbk')).replace('\n', '') # 写信时间 item_all['xxsj'] = selector.xpath(xxsj_xpath).extract()[0].decode('utf-8').encode('gbk') # 回复时间 item_all['hfsj'] = selector.xpath(hfsj_xpath).extract()[0].decode('utf-8').encode('gbk') # 获取二级页面中的POST参数 eventtaget = 'ctl00$ContentPlaceHolder1$GridView1$ctl0' + str(i + 2) + '$LinkButton5' content_data = { '__EVENTTARGET': eventtaget, '__EVENTARGUMENT': '', '__VIEWSTATE': viewstate, '__VIEWSTATEGENERATOR': '9DEFE542', '__EVENTVALIDATION': eventvalidation, 'ctl00$ContentPlaceHolder1$GridView1$ctl12$txtGoPage': nextpage } # 完成<em>抓</em>取<em>信息</em>的传递 yield Request(url="http://218.92.23.142/sjsz/szxx/Index.aspx", callback=self.send_value, meta={'item_all': item_all, 'content_data': content_data}) # 进入页面中的二级页面的链接,必须利用POST方法才能提交,无法看到直接的URL,同时将本页中<em>抓</em>取的item和进入下一页的POST方法进行传递 # yield Request(url="http://218.92.23.142/sjsz/szxx/Index.aspx", callback=self.getcontent, # meta={'item': item_all}) # yield FormRequest(url="http://218.92.23.142/sjsz/szxx/Index.aspx", formdata=content_data, # callback=self.getcontent) # 进入下一页 if selector.xpath(nextlink).extract(): yield FormRequest(url="http://218.92.23.142/sjsz/szxx/Index.aspx", formdata=nextpage_data, callback=self.parse) # 将当前页面的值传递到本函数并存入类的item中 def send_value(self, response): itemx = response.meta['item_all'] post_data = response.meta['content_data'] Domeszxx.item = copy.deepcopy(itemx) yield FormRequest(url="http://218.92.23.142/sjsz/szxx/Index.aspx", formdata=post_data, callback=self.getcontent) return # 将二级链接中值<em>抓</em>取并存入类的item中 def getcontent(self, response): item_getcontent = { 'xfr': ''.join(response.xpath('//*[@id="lblXFName"]/text()').extract()).decode('utf-8').encode('gbk'), 'lxnr': ''.join(response.xpath('//*[@id="lblXFQuestion"]/text()').extract()).decode('utf-8').encode( 'gbk'), 'hfnr': ''.join(response.xpath('//*[@id="lblXFanswer"]/text()').extract()).decode('utf-8').encode( 'gbk')} Domeszxx.item.update(item_getcontent) yield Domeszxx.item return

使用Scrapy来爬取自己的CSDN文章

前言<em>爬虫</em>作为一中<em>数据</em>搜集获取手段,在大<em>数据</em>的背景下,更加得到应用。我在这里只是记录学习的简单的例子。大牛可以直接使用python的url2模块直接<em>抓</em>下来页面,然后自己使用正则来处理,我这个技术屌丝只能依赖于框架,在这里我使用的是Scrapy。install首先是python的安装和pip的安装。 sudo apt-get install python python-pip python-dev

Scrapy 在Mac OSX 10.10 上安装错误的解决。Failed building wheel for lxml

Scrapy 在Mac OSX 10.10 上安装错误的解决Scrapy 是一个基于Python的<em>爬虫</em>框架。它简洁而跨平台,适合<em>爬虫</em>类软件的快速开发。 Scrapy的官方安装文档中给<em>出</em>的安装方法是使用pip进行安装 pip install Scrapy 但是在OSX 10.10中运行以上代码会<em>出</em>现lxml模块无法编译的<em>问题</em>。错误<em>信息</em>为 Failed building wheel fo

爬虫现Forbidden by robots.txt

先说结论,关闭<em>scrapy</em>自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,设置为False即可解决。 使用<em>scrapy</em>爬取淘宝页面的时候,在提交http请求时<em>出</em>现debug<em>信息</em>Forbidden by robots.txt,看来是请求被拒绝了。开始因为是淘宝页面有什么保密机制,防止<em>爬虫</em>来<em>抓</em>取页面,于是在spider中填入各种header<em>信息</em>,伪装成浏览器,结果还是不行。。。用

解决问题: pywin32 安装后现 import win32api ImportError DLL load failed

执行 <em>scrapy</em> bench 命令时 <em>出</em>现错误。(之前安装了pywin32库)Traceback (most recent call last): File "c:\users\aobo\appdata\local\programs\python\python35\lib\site-packages\twisted\internet\defer.py", line 1260, in _inli

爬虫框架scrapy,爬取豆瓣电影top250

1 . 新建项目进入打算存储代码的目录,命令行运行如下语句 <em>scrapy</em> startproject tutorial 2 . 定义Itemimport <em>scrapy</em>class DoubanItem(<em>scrapy</em>.Item): # define the fields for your item here like: # name = <em>scrapy</em>.Field() title

Scrapy使用IP代理池

https://blog.csdn.net/u011781521/article/details/70194744?locationNum=4&amp;amp;fps=1   一、手动更新IP池   1.在settings配置文件中新增IP池:       IPPOOL=[ {&quot;ipaddr&quot;:&quot;61.129.70.131:8080&quot;}, {&quot;ipaddr&quot;:&quot;...

scrapy爬取网页数据

刚开始接触<em>scrapy</em>,乍那么一看,这都是些什么鬼,感觉好难。。。。。。 学习历程大概是这样的: 1.先百度了<em>scrapy</em>的官方文档,<em>scrapy</em>官方文档,早就安装了<em>scrapy</em>,cmd->python->import <em>scrapy</em>的时候是很正常的,不过在pycharm中导入一直都有红杠杠的。。。。不得不又卸了重新装。在这里特别要注意<em>scrapy</em>的s的大小写。pip安装的时候是大写,导入模块的

scrapy无法存入数据

当整个<em>scrapy</em>爬取框架搭建好后,items,pipeline都设置好了,却发现通过Pipeline无法存入文件,这时候就需要设置settings.py了在<em>scrapy</em>中settings中pipeline的开关是默认关闭的,需要将其注释去掉,之后就可以发挥<em>scrapy</em>的大刀啦。 # Configure item pipelines # See http://<em>scrapy</em>.readthedocs.o

scrapy爬取某网站,模拟登陆过程中遇到的那些坑

最近接触<em>scrapy</em>,爬取了几个网站,用着还挺顺手的. 前几天,一个<em>做</em>业务的同事让我帮他爬取一个网站上的用户<em>信息</em>,我就满口承诺下来了.毕竟,通过前几次的爬取,已经自信心爆棚了(从此入坑). 拿到一个网站之后就是先分析网站,分析之后发现需要的<em>数据</em>要登陆才能看到.这个可难不倒我,不就是模拟登陆吗,小菜一碟. 用chrome分析一下,看到有用户名,密码,还有其他两个校验值.另外还有一

scrapy中遇到的问题与解决

Scrapy,Python开发的一个快速,高层次的屏幕<em>抓</em>取和web<em>抓</em>取框架,用于<em>抓</em>取web站点并从页面中提取结构化的<em>数据</em>。 因为好像这个用的比较多,所以<em>看看</em>用这个框架该怎么写<em>爬虫</em>。其实不难,但是中间<em>出</em>了很多神奇的小<em>问题</em>。 输<em>出</em>不正确、改代码结果不变?其实是因为反复使用命令<em>scrapy</em> crawl spider -o 1.json时候,增加的输<em>出</em><em>数据</em>不会覆盖,而是继续往后面添加。request不

Scrapy 取疑惑问题,未解决!!!

版本python3.5 <em>scrapy</em> 1.4<em>抓</em>取链家<em>数据</em>的时候,<em>抓</em>到一定<em>数据</em>量会卡住不前,不知道<em>问题</em>原因,在setting设置了一些参数,但是并没有感觉到效果。我记得以前使用<em>scrapy</em>设置timeout的时候,是有效果的,不知道为啥这次不行,就是卡住不前,不会超时重试 老师说记录详细日志,从日志中找答案,我还没有找到记录详细日志的方法。DOWNLOAD_DELAY = 6 #设置时间间隔为1s

scrapy框架爬取数据入库(附详细介绍)

在论坛上看过很多的<em>scrapy</em><em>数据</em>入库(mysql)的例子,但是我尝试之后<em>总是</em><em>出</em>现一些莫名其妙的错误,搞得自己走了很多弯路,于是我将我认为是最简单易懂的方法和代码展示给大家,欢迎大家吐槽1.创建<em>scrapy</em>项目(安装<em>scrapy</em>框架和mysql<em>数据</em>库就不在这讨论了,论坛上也有很多),在这里我创建的项目名称是“testmysql”,命令(cmd)是“<em>scrapy</em> startproject testm...

scrapy shell 可以获取的数据,在scrapy爬虫中获取不到,我爬的是百家号

Scrapy: 为什么xpath和css明明是对的,但却爬不到任何内容?

有很多小伙伴入门Scrapy的时候都会有这样的疑问:明明写的xpath和css是对的(就算真自己写错,那用谷歌或火狐返回的xpath和css不会错的吧),但<em>总是</em>返回一个空列表。 解决办法很简单,改变自己的一个观念就好:Scrapy<em>爬虫</em>看到的页面结构与我们自己在浏览器看到的可能并不一样。 所以<em>scrapy</em> shell这种工具就非常有用了,Scrapy官方文档对它的说明是: The...

利用scrapy框架爬去得到数据但是无法写入文件的问题

在爬取当当网书籍<em>信息</em>的时候,我想把<em>数据</em>写入文件和<em>数据</em>库啊,但是那些<em>数据</em>都能显示在命令行中但是无法写入文件和<em>数据</em>库中,后来发现是在settings.py中没有将Pipeline打开,即如下图所示: 这里把ITEM_PIPELINES这个字典的注释去掉之后才可以运行pipelines.py这个文件,之后就可以利用pipelines.py中的函数写入<em>数据</em>库和文件了...

scrapy爬虫错误一:无法爬到期望的数据

最近在开始学习<em>scrapy</em><em>爬虫</em>,遇到了一处很坑的地方,在屏幕上输<em>出</em>的debug<em>信息</em><em>总是</em>没有任何结果就直接提示:  [<em>scrapy</em>.statscollectors] INFO: Dumping Scrapy stats ............... ............. [<em>scrapy</em>.core.engine] INFO: Spider closed (finished),然后程序就...

大学四年自学走来,这些私藏的实用工具/学习网站我贡献来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献<em>出</em>来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法<em>数据</em>类型Java有哪些<em>数据</em>类型switc...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

<em>数据</em>结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来<em>看看</em>小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面<em>环境</em>有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

Linux命令学习神器!命令看不懂直接给你解释!

大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件不可能完成的任务。 一般情况下,我们学习一个命令时,要么直接百度去搜索它的用法,要么就直接用 man 命令去查看守冗长的帮助手册。这两个都可以实现我们的目标,但有没有更简便的方式呢? 答案是必须有的!今天给大家推荐一款有趣而实用学习神器 — kmdr,让你解锁 Linux 学习新姿势...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

史上最全的 python 基础知识汇总篇,没有比这再全面的了,建议收藏

网友们有福了,小编终于把基础篇的内容全部涉略了一遍,这是一篇关于基础知识的汇总的文章,请朋友们收下,不用客气,不过文章篇幅肯能会有点长,耐心阅读吧<em>爬虫</em>(七十)多进程multiproces...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司<em>出</em>卖自己的劳动时...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现<em>出</em>了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样<em>出</em>色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录<em>数据</em>库基础知识为什么要使用<em>数据</em>库什么是SQL?什么是MySQL?<em>数据</em>库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?<em>数据</em>类型mysql有哪些<em>数据</em>类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

新一代神器STM32CubeMonitor介绍、下载、安装和使用教程

关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang最近ST官网悄悄新上线了一款比较强大的工具:STM32CubeMonitor V1.0.0。经过我研究和使用之...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,<em>做</em>事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写<em>出</em>一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了<em>出</em>来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

大学一路走来,学习互联网全靠这几个网站,最终拿下了一把offer

大佬原来都是这样炼成的

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个<em>问题</em>,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个<em>问题</em>:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。<em>总是</em>幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

什么时候跳槽,为什么离职,你想好了么?

都是<em>出</em>来打工的,多为自己着想

为什么程序员外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来<em>看看</em>……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的<em>问题</em>(当时我只知道第一个):@Conditional是<em>做</em>什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你期望月薪4万,门右拐,不送,这几个点,你也就是个初级的水平

先来看几个<em>问题</em>通过注解的方式注入依赖对象,介绍一下你知道的几种方式@Autowired和@Resource有何区别说一下@Autowired查找候选者的...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

ffplay源码分析下载

分为8各部分,逐步教你理解ffplay, 相关下载链接:[url=//download.csdn.net/download/n1wer/588558?utm_source=bbsseo]//download.csdn.net/download/n1wer/588558?utm_source=bbsseo[/url]

文件夹加密器 直接复制到文件夹下加密下载

简单便捷的文件夹加密工具 直接复制到文件夹下就可以了 相关下载链接:[url=//download.csdn.net/download/ctflyy/2999070?utm_source=bbsseo]//download.csdn.net/download/ctflyy/2999070?utm_source=bbsseo[/url]

TI 28027 piccolo controlstick 例程下载

该资源是TI提供的关于28027 小型控制棒的例程,可以再改板子上运行 相关下载链接:[url=//download.csdn.net/download/liuhan20/1898903?utm_source=bbsseo]//download.csdn.net/download/liuhan20/1898903?utm_source=bbsseo[/url]

我们是很有底线的