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

News_spider文件

-*- coding: utf-8 -*-

import scrapy
import re

from scrapy import Selector
from News.items import NewsItem

class NewsSpiderSpider(scrapy.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 scrapy

class NewsItem(scrapy.Item):

title = scrapy.Field()
post = scrapy.Field()
approver = scrapy.Field()
date_of_publication = scrapy.Field()
browse_times = scrapy.Field()
content = scrapy.Field()
img1_url = scrapy.Field()
img1_name = scrapy.Field()
img2_url = scrapy.Field()
img2_name = scrapy.Field()
img3_url = scrapy.Field()
img3_name = scrapy.Field()
img4_url = scrapy.Field()
img4_name = scrapy.Field()
img5_url = scrapy.Field()
img5_name = scrapy.Field()
img6_url = scrapy.Field()
img6_name = scrapy.Field()
company = scrapy.Field()
writer_photography = scrapy.Field()
tel = scrapy.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 [scrapy.utils.log] INFO: Scrapy 1.3.3 started (bot: News)
2017-04-08 11:00:12 [scrapy.utils.log] INFO: Overridden settings: {'BOT_NAME': 'News', 'SPIDER_MODULES': ['News.spiders'], 'NEWSPIDER_MODULE': 'News.spiders'}
2017-04-08 11:00:12 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.telnet.TelnetConsole',
'scrapy.extensions.corestats.CoreStats',
'scrapy.extensions.logstats.LogStats']
2017-04-08 11:00:12 [scrapy.middleware] INFO: Enabled downloader middlewares:
['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.stats.DownloaderStats']
2017-04-08 11:00:12 [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']
2017-04-08 11:00:12 [scrapy.middleware] INFO: Enabled item pipelines:
['News.pipelines.MysqlPipeline']
2017-04-08 11:00:12 [scrapy.core.engine] INFO: Spider opened
2017-04-08 11:00:12 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2017-04-08 11:00:12 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2017-04-08 11:00:13 [scrapy.core.engine] DEBUG: Crawled (200) (referer: None)
2017-04-08 11:00:13 [scrapy.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/scrapy/spiders/
_init__.py", line 76, in parse
raise NotImplementedError
NotImplementedError
2017-04-08 11:00:13 [scrapy.core.engine] INFO: Closing spider (finished)
2017-04-08 11:00:13 [scrapy.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 [scrapy.core.engine] INFO: Spider closed (finished)

Process finished with exit code 0
直接运行会弹出NotImplementedError错误,单步调试也看不出到底哪里出了问题

4个回答

你必须实现 scrapy.Spider 的parse方法

def parse(self, response):
用这个response来处理应答

allowed_domains = ["http://18.92.0.1"]
前面不能加http://

如果能力还没到,就先模仿自动生成的代码来

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
命令窗口执行:scrapy crawl 项目名称 的问题
请问:我cd到我创建的project目录下了,输入 scrapy crawl 项目名称,但是显示的是:‘scrapy’不是内部或外部命令,也不是可运行的程序或批处理文件。我在安装scrapy的目录下使用scrapy命令,是可以执行的,但只限于这个目录。在这个目录执行上述命令,会出现Unknown command: crawl,这怎么处理呢?
scrapy response解析不全打印结果缺失
``` # -*- coding: utf-8 -*- import scrapy from scrapy.conf import settings class ContentSpider(scrapy.Spider): name = "content" allowed_domains = ["pkulaw.cn"] start_urls = ( 'http://www.pkulaw.cn/', ) headers = settings.get('HEADERS') surl = 'http://www.pkulaw.cn/fulltext_form.aspx?Db=chl&Gid=58178&keyword=&EncodingName=&Search_Mode=accurate' def parse(self, response): yield scrapy.Request(url=self.surl, headers=self.headers, callback=self.parse_con ) def parse_con(self, response): content = ''.join(response.xpath('.//*[@id="div_content"]').extract()) self.logger.info("--content--:%s" % content) ``` ![图片说明](https://img-ask.csdn.net/upload/201701/04/1483511185_293371.png)<p align='center'><font class='MTitle'>人才市场管理规定<br> (2001年9月11日人事部、国家工商行政管理总局令第1号发布 2005年3月22日根据《人事部、国家工商行政管理总局关于修改<人才市场管理规定>的决定》修正 2005年3月22日人事部、国家工商行政管理总局令第4号发布)</font></p> 打印结果”<人才管理规定>“不存在,有什么解决办法吗
scrapy爬虫不能自动爬取所有页面
学习scrapy第三天,在爬取[wooyun白帽子精华榜](http://wooyun.org/whitehats/do/1/page/1 "")的时候,不能爬取所有的页面。 items.py ``` # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: # http://doc.scrapy.org/en/latest/topics/items.html import scrapy class WooyunrankautoItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() ''' 以下信息分别为 注册日期 woyun昵称 精华漏洞数 精华比例 wooyun个人主页 ''' register_date = scrapy.Field() nick_name = scrapy.Field() rank_level = scrapy.Field() essence_count = scrapy.Field() essence_ratio = scrapy.Field() ``` pipelines.py ``` # -*- coding: utf-8 -*- # Define your item pipelines here # # Don't forget to add your pipeline to the ITEM_PIPELINES setting # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html import sys import csv class WooyunrankautoPipeline(object): ''' process the item returned from the spider ''' def __init__(self): reload(sys) if sys.getdefaultencoding()!="utf-8": sys.setdefaultencoding("utf-8") file_obj = open("wooyunrank.csv","wb") fieldnames = ["register_date","nick_name","rank_level","essence_count","essence_ratio"] self.dict_writer = csv.DictWriter(file_obj,fieldnames=fieldnames) self.dict_writer.writeheader() def process_item(self,item,spider): self.dict_writer.writerow(item) return item ``` spider.py ```python #!/usr/bin/python # -*- coding:utf-8 -*- import sys from scrapy.spider import Spider from scrapy.selector import Selector from wooyunrankauto.items import WooyunrankautoItem from scrapy.contrib.spiders import CrawlSpider,Rule from scrapy.contrib.linkextractors import LinkExtractor class WooyunSpider(CrawlSpider): ''' 爬取wooyun漏洞精华榜单 ''' name = "wooyunrankauto" # 爬取速度为1s download_delay = 2 allowed_domains = ["wooyun.org"] start_urls = [ "http://wooyun.org/whitehats/do/1/page/1" ] rules=[ Rule(LinkExtractor(allow=("/whitehats/do/1/page/\d+")),follow=True,callback='parse_item') ] # def __init__(self): # reload(sys) # if sys.getdefaultencoding()!="utf-8": # sys.setdefaultencoding("utf-8") def parse_item(self,response): sel = Selector(response) infos = sel.xpath("/html/body/div[5]/table/tbody/tr") items = [] for info in infos: item = WooyunrankautoItem() item["register_date"] = info.xpath("th[1]/text()").extract()[0] item["rank_level"] = info.xpath("th[2]/text()").extract()[0] item["essence_count"] = info.xpath("th[3]/text()").extract()[0] item["essence_ratio"] = info.xpath("th[4]/text()").extract()[0] item["nick_name"] = info.xpath("td/a/text()").extract()[0] items.append(item) return items ``` 上面的spider.py只能爬取1,2,3,4,5页(日志中显示爬取六次,第一页被重复爬取了) 但是浏览第5页的时候,6,7,8,9页也会出现啊,这里为什么没有爬取到6,7,8,9 第二个版本的spider.py ``` def parse_item(self,response): sel = Selector(response) infos = sel.xpath("/html/body/div[5]/table/tbody/tr") items = [] for info in infos: item = WooyunrankautoItem() item["register_date"] = info.xpath("th[1]/text()").extract()[0] item["rank_level"] = info.xpath("th[2]/text()").extract()[0] item["essence_count"] = info.xpath("th[3]/text()").extract()[0] item["essence_ratio"] = info.xpath("th[4]/text()").extract()[0] item["nick_name"] = info.xpath("td/a/text()").extract()[0] items.append(item) return item ``` 这个版本可以爬取所有页面,但是每个页面有20条信息,我只能取到第一条信息(循环第一条的时候就返回了,这里可以理解)但是为什么这里就可以爬取所有页面 可能是我对scrapy理解还不深入,这里实在不知道什么问题了,我想自动爬取所有页面(而且不会重复爬取),每个页面有20条信息,应该就是20个item。
scrapy代码运行成功却没有保存到文件中
#**_ scrapy代码运行成功却没有保存到文件中_** **代码**: ![图片说明](https://img-ask.csdn.net/upload/201708/21/1503313313_722770.png) ``` #encoding:utf-8 #!/user/bin/python from scrapy.spider import Spider from scrapy.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 ``` 上面的代码出现了如下错误 ![图片说明](https://img-ask.csdn.net/upload/201708/21/1503313549_239409.png) 把 ``` yield items ``` 改为 yield sites 时,没有报错 但是 123.json文件是空的
scrapy爬取中华英才网职位发现职位数量不一致,代码逻辑应该没问题,是什么原因?用scrapy-redis能解决吗?
用scrapy爬取中华英才网,抓取完毕发现职位数量和实际职位数量不一致,检查了代码逻辑应该不会出错,不知道是什么原因,能够证明解决吗?或者用scrapy-redis能够解决数据缺失的问题吗?求大神解答,拜托了!!
使用scrapy的例子 直接出现 ERROR: Error downloading
使用scrapy的官方例子 直接出现 ERROR: Error downloading <GET ....>的错误,这个怎么解决啊,我是新手。 ![图片说明](https://img-ask.csdn.net/upload/201701/22/1485065829_26841.png)
scrapy - 怎么让scrapy框架产生的日志输出中文
我自已写的日志,中文输出正常,scrapy框架自动生成的日志记录,中文输出是一串字符串,怎么输出为中文? ![图片说明](https://img-ask.csdn.net/upload/201803/07/1520384186_193793.png)
scrapy 爬取遇到问题Filtered duplicate
用scrapy请求站点 http://bigfile.co.kr 的时候,显示Filtered duplicate request:no more duplicates错误,然后就结束了,加上dont_filter=True,重新运行,结果一直死循环,无法结束,也不能爬到东西,有没有大神看一下 ```python name = 'WebSpider' start_urls = ['http://bigfile.co.kr'] headers = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.9", "Connection": "keep-alive", 'Referer': 'http://www.baidu.com/', "Upgrade-Insecure-Requests": 1, "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36" } def start_requests(self): request = scrapy.Request(url=self.start_urls[0], headers=self.headers, callback=self.parse) request.meta['url'] = self.start_urls[0] yield request ```
我的虚拟环境下的scrapy框架出了什么问题?
今天搭建了整天,可是现在这爬虫还没运行起来。问题描述如下: 1、在PyCharm的Python Console中运行框架,运行结果:no module named 'scrapy'. 2、后排查发现,爬虫程序工作目录在原生Python目录,而非指定目录,所以手动将scrapy等所提示文件夹移动至原生目录。 3、再次运行,结果为:Spider not found 'chaozhou'(chaozhou为项目名称) ![图片说明](https://img-ask.csdn.net/upload/201903/07/1551890185_868319.png) 4、本以为自己是没有指定工作目录,抑或WORKON环境变量设置有误,但是在虚拟环境下,scrapy shell却可以运行。 ![图片说明](https://img-ask.csdn.net/upload/201903/07/1551890435_397151.png) ![图片说明](https://img-ask.csdn.net/upload/201903/07/1551890513_532212.png) 需要注意的是,wheel,twisted,win32api之类的必备工具我都已经下载在虚拟环境文件夹里面了,所以我的问题是:究竟我的框架哪里出现问题了?工作目录是否有误?该如何修正?
python scrapy 爬取的数据保存不了
# python scrapy 爬取的数据保存不了 上代码 spider代码: ``` from textsc.items import TextscItem from scrapy.selector import Selector from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors import LinkExtractor class Baispider(CrawlSpider): name = "Baidu" allowed_domains = ["baidu.com"] start_urls = [ "https://zhidao.baidu.com/list" ] rules = ( Rule(LinkExtractor(allow=('/shop', ), deny=('fr', )), callback='parse_item'), ) def parse_item(self, response): sel= Selector(response) items=[] item=TextscItem() title=sel.xpath('//div[@class="shop-menu"]/ul/li/a/text()').extract() for i in title: items.append(i) item['TitleName'] = items print (item['TitleName']) return item ``` items.py代码 ``` import scrapy import json class TextscItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() TitleName = scrapy.Field() pass ``` scrapy的版本是1.4.0 运行没有报错 但是json文件里面什么都没有 求解答 谢过!..
请问scrapy爬虫使用代理的问题
我用scrapy爬虫来抓取数据,购买了一些代理,看scrapy文档上面介绍使用代理的话要编写Middleware,但是我不打算使用Middleware,我尝试了这样 ``` def start_requests(self): name = my_name password = password proxy = my proxy return[ FormRequest(url,formate={'account':my_name,'password':password}, meta={'proxy':proxy}, callback=self.after_login) ] def after_login(self, response): response.xpath ``` 但是返回了错误,请问各位老师如何不使用middleware然后可以使用代理?谢谢
scrapy\selenium兼容问题
在scrapy中from selenium import webdriver,但是总报错没有selenium这个模块:ModuleNotFoundError: No module named 'selenium' 但是引入from selenium import webdriver时又正常、没有报错,不在scrapy中使用selenium\phantomjs时是可以正常使用的,请诸位大神解惑,selenium已经换了好几个版本了,但还是报错
scrapy formdata提交模拟点击下一页的参数 翻页失败
大概是知道什么原因了,但是还是找不到办法,有哪位大神碰到过么。 遇到问题的这个系统的分页是用asp.net的分页控件写的,我看很多道友都遇到这个情况,但不知道是怎么解决的。 f12 看到的所有需要提交的参数,我也都带上了,但就是翻不了页。 ———————————————————————————————————————————————————— 拜托各位大神帮忙看看,实在是困扰在下许多天了。 小弟新人,用的是scrapy爬取一个系统的网页数据,在模拟点击下一页的时候卡住了。 这个系统分页跳转他用的不是url,而是提交参数的形式。 我代码里写的参数基本上和浏览器看到的一样,同样也用postman测试是完全可以跳转的。 但就是在代码里的就是怎么都跳转不了。 (简言之就是,和页面请求一样的参数,代码里不行,但是postman里面可以。) 我有猜测,会不会是response的问题,但无从去验证。 图一是我代码里写的要提交的参数。 图三,四是浏览器页面跳转下一页需要提交的参数。 图五是我用postman提交相同参数却可以模拟跳转。 ![图片说明](https://img-ask.csdn.net/upload/201706/26/1498457288_217488.png) ![图片说明](https://img-ask.csdn.net/upload/201706/26/1498457307_589502.png) ![图片说明](https://img-ask.csdn.net/upload/201706/26/1498457317_384042.png) ![图片说明](https://img-ask.csdn.net/upload/201706/26/1498457328_205682.png) ![图片说明](https://img-ask.csdn.net/upload/201706/26/1498457382_156337.png)
scrapy不可以访问requests却可以
scrapy不可以访问requests却可以,谁有类似的解决经验么
flask+scrapy的爬虫问题
刚刚开始学习爬虫,现在已经可以通过scrapy crawl myscrapy的方式启动一个爬虫, 现在我想实现这样一个功能:用flask定义一个接口,别人调用这个接口的时候传递一个 url参数,拿到这个参数之后自动启动爬虫进行爬取数据,爬取到的数据以json数组的形式 返回给调用接口的人。想问下大家有什么实现思路吗?拜托了,感谢各位。
scrapy代码我这段是有错误吗?无法转成csv,创建的文档只有0k
# -*- coding: utf-8 -*- import scrapy from mySpider.items import MyspiderItem class MyspiderSpider(scrapy.Spider): name = 'myspider' allowed_domains = ['itcast.cn'] start_urls = ['http://www.itcast.cn/channel/teacher.shtml#ajavaee'] def parse(self, response): teacher_list = response.xpath('//div[@class="li_txt"]') teacherItem = [] for each in teacher_list: item = MyspiderItem() name = each.xpath('./h3/text()').extract() title = each.xpath('./h4/text()').extract() info = each.xpath('./p/text()').extract() item['name'] = name[0].encode("gbk") item['title'] = title[0].encode("gbk") item['info'] = info[0].encode("gbk") teacherItem.append(item) # print(name[0]) # print(title[0]) # print(info[0]) # pass return teacherItem 然后又用scrapy crawl spider -o spider.csv
scrapy 如何处理请求与请求之间的依赖关系
众所周知,scrapy是基于twisted的爬虫框架,scrapy控制器将spiders中的所有请求都yield到调度器的请求队列,所以整个项目的所有请求并非按照我们代码写的顺序去依次请求对应URL,但实际上,有很多网页的翻页是需要带上上一页的参数才能正常返回下一页的数据的,也就是说请求必须是按照一定的规则(页码顺序等)才能获得正确的响应数据。基于这个前提,请问scrapy框架如何应对呢?
scrapy框架模拟登陆(好像是重定向问题,小白不太懂)
需要登陆的网站是这样的,它在输入用户名和密码之后,提交的表单中,会把用户名和密码和一个随机值混合然后用DNS加密,表单还需要提交在源代码中隐藏的两个随机值,这些我都有办法获取到,问题是,我获取这一个表单之后使用scrapy.FormRequest()提交,但是进入了一个新的网页,表单需要的随机值发生了改变,导致表单错误,无法登陆,请问各位怎么解决? 非常感谢能进来看看的各位,谢谢(我小白一个...)
scrapy上的一点问题,求大神解答,刚上csdn还没有金币,sorry
我用scrapy shell http://www.louisvuitton.cn/zhs-cn/products/tambour-large-quartz-brown-dial-leather-strap-002069, 通过response.body返回的代码被突然截断,和网页源代码不一样,那个网站稍微有点大,我怀疑是scrapy内部的原因。还有我的HTTP通过抓包是1.1的,和网上有个解答不同。
130 个相见恨晚的超实用网站,一次性分享出来
相见恨晚的超实用网站 持续更新中。。。
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱 极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件, 选择安装到U盘(按照操作无需更改) 三、重启进入pe系统 1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12) 选择需要启...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
java源码分析 Arrays.asList()与Collections.unmodifiableList()
ArrayList支持所有的可选操作(因为一个UnsupportedOperationException异常都没有捕获到),所以要想拥有完备的功能,还是得使用ArrayList啊。 Arrays$ArrayList除了set()操作外,都不支持。 Collections$UnmodifiableRandomAccessList都不支持,名副其实的Unmodifiable不可修改。
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
Java学习笔记(七十二)—— Cookie
概述 会话技术: 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器发送资源请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Cookie,把数据存储到客户端 服务器端会话技术:Session,把数据存储到服务器端 Cookie 概念:客户端会话技术,将数据存储到客户端 快速入门: 使用步骤: 创建C...
程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
程序员该看的几部电影
1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?如何...
蓝桥杯知识点汇总:基础知识和常用算法
此系列包含蓝桥杯所考察的绝大部分知识点,一共有==基础语法==,==常用API==,==基础算法和数据结构==,和==往年真题==四部分,虽然语言以JAVA为主,但算法部分是相通的,C++组的小伙伴也可以看哦。
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
实现简单的轮播图(单张图片、多张图片)
前言 刚学js没多久,这篇博客就当做记录了,以后还会完善的,希望大佬们多多指点。ps:下面出现的都是直接闪动,没有滑动效果的轮播图。 单张图片的替换 · ...
强烈推荐10本程序员在家读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 意思是密码。 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mkdir:Make directory ...
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药...
Java与Python学习通法(1)和(2)序言和编程语言发展史怎么学
dd
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
阿里架构师花近十年时间整理出来的Java核心知识pdf(Java岗)
由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 整理了一份Java核心知识点。覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。 欢迎大家加入java学习交流社区 点击加入 可获取文中文档 小编推荐: ...
Python基础知识点梳理
python常见知识点梳理 摘要: 本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象。python的详细语法介绍可以查看官方编程手册,也有一些在线网站对python语法进行了比较全面的介绍,比如菜鸟教程: python3 教程|菜鸟教程 本文主要是介绍基础语法,操作实例在另一篇博客中单独介绍: python语言介绍 python是一门解释型语言,python的设计目标: 一门...
2020年2月全国程序员工资统计,平均工资13716元
趋势 2020年2月,中国大陆程序员平均工资13716员,比上个月增加。具体趋势如图: 各主要程序员城市工资变化 城市 北京,上海,深圳,杭州,广州四地的工资最高。 city 平均工资 最低工资 中位数 最高工资 招聘人数 百分比 北京 18098 3750 15000 45000 20529 9.53% 深圳 16903 5750 15000 37500 30941 1...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad...
为什么说程序员做外包没前途?
之前做过不到3个月的外包,2020的第一天就被释放了,2019年还剩1天,我从外包公司离职了。我就谈谈我个人的看法吧。首先我们定义一下什么是有前途 稳定的工作环境 不错的收入 能够在项目中不断提升自己的技能(ps:非技术上的认知也算) 找下家的时候能找到一份工资更高的工作 如果你目前还年轻,但高不成低不就,只有外包offer,那请往下看。 外包公司你应该...
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问