当前位置: 首页 > news >正文

织梦做的网站在手机上显示网页设计与网站建设过程

织梦做的网站在手机上显示,网页设计与网站建设过程,怎么仿做网站,网站开发写好了怎么发布1 目标站点分析 抓取网站#xff1a;http://quotes.toscrape.com/ 主要显示了一些名人名言#xff0c;以及作者、标签等等信息#xff1a; 点击next#xff0c;page变为2#xff1a; 2 流程框架 抓取第一页#xff1a;请求第一页的URL并得到源代码#xff0c;进行下…1 目标站点分析 抓取网站http://quotes.toscrape.com/ 主要显示了一些名人名言以及作者、标签等等信息 点击nextpage变为2 2 流程框架 抓取第一页请求第一页的URL并得到源代码进行下一步分析。获取内容和下一页链接分析源代码提取首页内容获取下一页链接等待进一步爬取。翻页爬取请求下一页信息分析内容并请求再下一页链接。保存爬取内容将爬取结果保存为特定格式如文本数据库。 3 代码实战 新建一个项目 scrapy startproject quotetutorial创建一个spider(名为quotes) 使用pycharm来打开已经在本地生成的项目 scrapy.cfg:配置文件 items.py:保存数据的数据结构 middlewares.py:爬取过程中定义的一些中间件可以用来处理RequestResponse以及Exceptions等操作也可以用来修改Request, Response等相关的配置 pipelines.py:项目管道可以用来输出一些items settings.py:定义了许多配置信息 quotes.py:主要的运行代码 执行这个爬虫程序: 可以看到控制台中打印出了许多调试信息可以看出它和普通的爬虫不太一样Scrapy提供了很多额外的输出。 抓取第一页 1.更改QuotesSpider这个类,通过css选中quote这个区块 def parse(self, response):quotes response.css(.quote)for quote in quotes:text quote.css(.text::text).extract_first()author quote.css(.author::text).extract_first()tags quote.css(.tags . tag::text).extract()这样的解析方法和pyquery非常相似 .text :指的是标签的class. ::text :是Scrapy特有的语法结构表示输出标签里面的文本内容. extract_first() :方法表示获取第一个内容. extract :会把所有结果都找出来类似于find和findall). 说明Scrapy还为我们提供了一个非常强大的工具–shell在命令行中输入“scrapy shell quotes.toscrape.com”可以进入命令行交互模式 例如直接输入response回车后会直接执行这条语句。 试试刚才写的方法的效果先查看“response.css(’.quote’)”的输出 这是一个list类型的数据里面的内容是Selector选择器查看第一个结果此时若直接输入quotes会报错。 先执行quotes response.css(‘.quote’)然后quotes[0]。 .text和.text::text的区别data数据的输出和不输出 2.借助Scrapy提供的“items.py”定义统一的数据结构指定一些字段之类的将爬取到的结果作为一个个整体存下来。根据提示更改文件如下 3. 要在parse方法中调用我们刚才定义的items将提取出的网页信息存储到item然后调用yield方法将item生成出来。 获取内容和下一页链接 import scrapy from quotetutorial.items import QuotetutorialItemclass QuotesSpider(scrapy.Spider):name quotesallowed_domains [quotes.toscrape.com]start_urls [https://quotes.toscrape.com]def parse(self, response):quotes response.css(.quote)for quote in quotes:item QuotetutorialItem()text quote.css(.text::text).extract_first()author quote.css(.author::text).extract_first()tags quote.css(.tags .tag::text).extract()item[text] textitem[author] authoritem[tags] tagsyield itemnext response.css(.pager .next a::attr(href)).extract_first()url response.urljoin(next)yield scrapy.Request(urlurl, callbackself.parse)最后调用Request第一个参数就是要请求的url第二个参数“callback”是回调函数的意思也就是请求之后得到的response由谁来处理这里我们还是调用parse因为parse方法就是用来处理索引页的这就相当于完成了一个递归的调用可以一直不断地调用parse方法获取下一页的链接并对访问得到的信息进行处理。 再次重新运行程序可以看到输出了10页的内容这是因为该网站只有10页内容 保存爬取到的信息 在原来的命令后面增加“-o 文件名称.json”爬取完成后就会生成一个“quotes.json”文件把获取到的信息保存成了标准的json格式。 scrapy crawl quotes -o quotes.jsonScrapy还提供了其它存储格式比如“jl”格式在命令行输入如下命令就可以得到jl格式文件。相比于json格式它没有了最前面和最后面的的大括号每条数据独占一行 scrapy crawl quotes -o quotes.jl或者保存成csv格式 scrapy crawl quotes -o quotes.csv它还支持xml、pickle和marshal等格式。 Scrapy还提供了一种远程ftp的保存方式可以将爬取结果通过ftp的形式进行保存例如 scrapy crawl quotes -o ftp://user:passftp.example.com/path/quotes.csv数据处理 在将爬取到的内容进行保存之前还需要对item进行相应的处理因为在解析完之后有一些item可能不是我们想要的或者我们想把item保存到数据库里面就需要借助Scrapy的Pipeline工具。 更改pipelines.py文件 # Define your item pipelines here # # Dont forget to add your pipeline to the ITEM_PIPELINES setting # See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html# useful for handling different item types with a single interface from itemadapter import ItemAdapter from scrapy.exceptions import DropItem import pymongoclass TextPipeline:def __init__(self):self.limit 50def process_item(self, item, spider):if item[text]:if len(item[text]) self.limit:item[text] item[text][0:self.limit].rstrip() ...return itemelse:return DropItem(Missing Text)class MongoPipeline(object):def __init__(self, mongo_uri, mongo_db):self.mongo_uri mongo_uriself.mongo_db mongo_dbclassmethoddef from_crawler(cls, crawler):return cls(mongo_uricrawler.settings.get(MONGO_URI),mongo_dbcrawler.settings.get(MONGO_DB))def open_spider(self, spider):self.client pymongo.MongoClient(self.mongo_uri)self.db self.client[self.mongo_db]def process_item(self, item, spider):name item.__class__.__name__self.db[quotes].insert(dict(item))return itemdef close_spider(self, spider):self.client.close()更改setting: MONGO_URI localhost MONGO_DB quotestutorialpipeline似乎没生效要想让pipeline生效需要在settings里面指定pipeline。 后面的序号300和400这样代表pipeline运行的优先级顺序序号越小表示优先级越高会优先进行调用。 MONGO_URI localhost MONGO_DB quotestutorialITEM_PIPELINES {quotetutorial.pipelines.TextPipeline: 300,quotetutorial.pipelines.MongoPipeline: 400, }将程序写好后我们可以再次运行命令行输入“scrapy crawl quotes”可以看到输出的text过长的话后面就被省略号代替了同时数据也被存入了MongoDB数据库。
http://www.w-s-a.com/news/755830/

相关文章:

  • 聊城公司做网站wordpress连接域名
  • 宣传网站建设的意义台州行app官网下载
  • 温州 网站优化网站开发公司前置审批
  • 网站开发具体的工作内容网站下载app免费
  • seo网站建设时文章频率昆山网站建设ikelv
  • 中天建设中瑞物资网站优化建立生育支持政策体系
  • 网站页面的宽度大网站怎样选域名
  • icp网站备案流程wordpress post 405
  • 网站怎样上传到空间重庆有多少网站
  • 用模板建商城购物网站嘉定专业网站建设
  • 网站开发与应用 论文dede手机医院网站模板
  • 织梦 网站栏目管理 很慢自学网页设计难吗
  • 茶文化建设网站的意义平顶山网站建设服务公司
  • 建设网站详细流程南京宣传片制作公司
  • 合肥网站排名什么网站做电气自动化兼职
  • 如何用api做网站交通建设门户网站
  • 阳西住房和城乡规划建设局网站长沙网站seo技巧
  • 长沙知名网站推广手机画设计图软件
  • 顺德公司做网站自己有网站怎么优化
  • 南京网站开发南京乐识专业外贸流程知乎
  • 盐田区住房和建设局网站分类网站有哪些
  • 建一个团购网站WordPress文章字号设置
  • 做漂亮的网站东营网站seo
  • 网站开发摊销做设计哪个网站可以接单
  • 惠州h5网站建设建设公司网站报价
  • 做网站多少钱 优帮云嘉兴五县两区网站建设
  • 三亚旅游网站策划书企业网站建设的定位
  • 网站建设工作台账网站建设的实验结论
  • 商业网站建设平台制作软件的软件
  • 本地网站开发wordpress页面关键词和描述