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

比较好的网站建设网站建材网站建设公司

比较好的网站建设网站,建材网站建设公司,手机网站怎么建设,wordpress商城汉化主题目录 一、创建一个scrapy项目 二、xpath解析数据 三、通过pipelines管道实现数据保存 四、中间件 一、创建一个scrapy项目 1.创建一个文件夹#xff1a;C06 在终端输入以下命令#xff1a; 2.安装scrapy:pip install scrapy 3.来到文件夹下#xff1a;cd C06 4.创建…目录 一、创建一个scrapy项目 二、xpath解析数据 三、通过pipelines管道实现数据保存 四、中间件 一、创建一个scrapy项目 1.创建一个文件夹C06 在终端输入以下命令 2.安装scrapy:pip install scrapy 3.来到文件夹下cd C06 4.创建项目scrapy startproject C06L02(项目名称 5.切换到C06L02下cd C06L02/C06L02 切换到spiders下cd spiders 6.创建爬虫名称和输入爬取链接scrapy genspider app https://product.cheshi.com/rank/2-0-0-0-1/ (若是crawlspider爬虫字类实现全站爬取scrapy genspider -t crawl app http://seller.cheshi.com/jinan/ 7.注意看爬虫文件新生成的app.py链接是否一致 8.运行爬虫文件scrapy crawl app        9.若想要消除日志文件,在settings.py中添加命令LOG_LEVELERROR  若想要绕过ROBOTS协议,在settings.py中添加命令ROBOTSTXT_OBEYFalse 10.简单的scrapy项目的app.py文件代码如下 import scrapyclass AppSpider(scrapy.Spider):name appallowed_domains [product.cheshi.com]started_urls [http://product.cheshi.com/rank/2-0-0-0-1/]def parse(self, response):print(response.text) 若是crawlspider爬虫字类实现全站爬取: import scrapy from scrapy.linkextractors import linkExtractor from scrapy.spiders import CrawlSpider, Ruleclass AppSpider(CrawlSpider):name appallowed_domains [product.cheshi.com]started_urls [http://product.cheshi.com/jinan]rules (Rule(linkExtractor(allowrseller.cheshi.com/\d, denyrseller.cheshi.com/\d/.),callbackparse_item,followTrue),)def parse(self, response):print(response.url) 11.user-agent配置在settings.py文件中将user-agent注释内容展开添加需要内容 二、xpath解析数据 在app.py文件中修改parse函数 import scrapyclass AppSpider(scrapy.Spider):name appallowed_domains [product.cheshi.com]started_urls [http://product.cheshi.com/rank/2-0-0-0-1/]def parse(self, response):cars response.xpath(//ul[classcondition_list_con]/li)for car in cars:title car.xpath(./div[classm_detail]//a/text()).get()price car.xpath(./div[classm_detail]//b/text()).get() 若实现分页爬取则为以下代码 import scrapy from ..items import C06L10Itemclass AppSpider(scrapy.Spider):name appallowed_domains [book.douban.com]started_urls [http://book.douban.com/latest]def parse(self, response):books response.xpath(//ul[classchart-dashed-list]/li)for book in books:link book.xpath(.//h2/a/href).get()yield scrapy.Request(urllink,callbackself.parse_details)next_url response.xpath(//*[idcontent]/div/div[1]/div[4]/span[4]/a/href).get()if next_url is not None:next_url response.urljoin(next_url)print(next_url)yield scrapy.Request(urlnext_url, callbackself.parse)else:next_url response.xpath(//*[idcontent]/div/div[1]/div[4]/span[3]/a/href).get()next_url response.urljoin(next_url)print(next_url)yield scrapy.Request(urlnext_url, callbackself.parse)def parse_details(self, reponse):item C06L10Item()item[title] response.xpath(//*[idwrapper]/h1/span/text()).get()item[publisher] response.xpath(//*[idinfo]/a[1]/text()).get()yield item三、通过pipelines管道实现数据保存 1.在items.py文件中定义数据模型 import scrapyclass C06L04Item(scrapy.Item):title scrapy.Field()price scrapy.Field() 2.在app.py文件中添加如下代码 import scrapy from ..items import C06L04Itemclass AppSpider(scrapy.Spider):name appallowed_domains [product.cheshi.com]started_urls [http://product.cheshi.com/rank/2-0-0-0-1/]def parse(self, response):item C06L04Item()cars response.xpath(//ul[classcondition_list_con]/li)for car in cars:item[title] car.xpath(./div[classm_detail]//a/text()).get()item[price] car.xpath(./div[classm_detail]//b/text()).get()yield item 3.在settings.py文件中展开被注释掉的ITEM_PIPELINES无需修改 4.修改pipelines.py文件代码 from itemadapter import ItemAdapterclass C06L04Pipeline:def process_item(self, item, spider):# print(item[title],item[price])return item 若想要保存成文件添加以下代码 from itemadapter import ItemAdapterclass C06L04Pipeline:def __init__(self):self.f open(data.tet, w)def process_item(self, item, spider):self.f.write(item[title]item[price]\n)return itemdef __del__(self):self.f.close() 存储为mongodb形式为如下代码 from itemadapter import ItemAdapter import pymongoclass C06L04Pipeline:def __init__(self):self.client pymongo.MongoClient(mongodb://localhost:27017)self.db self.client[cheshi]self.col self.db[cars]def process_item(self, item, spider):res self.col.insert_one(dict(item))print(res.inserted_id)return itemdef __del__(self):print(end) 四、中间件 1.Middleware的应用随机User-Agent、代理IP、使用Selenium、添加Cookie 2.动态User-Agent 打开settings.py文件中注释掉的DOWNLOADER_MIDDLEWARES 在middlewares.py文件中添加如下代码只显示修改部分 import randomdef process_request(self, request, spider):uas [User-Agent:Mxxxxxxxxxxxxxxxxxxxxxxxx,User-Agent:Mxxxxxxxxxxxxxxxxxxxxxxxx,User-Agent:Mxxxxxxxxxxxxxxxxxxxxxxxx,User-Agent:Mxxxxxxxxxxxxxxxxxxxxxxxx,]request.headers[User-Agent] random.choice(uas) 2.代理IP 具体操作略去例如快代理-隧道代理-python-scrapy的文档中心有具体的书写方式
http://www.hkea.cn/news/14419403/

相关文章:

  • 互联网一二线大厂名单成都网站排名优化公司
  • 国外响应式网站模板h5可视化拖拽生成工具
  • 均安建网站网络营销工具介绍
  • 企业网站开发成都建设网站用的软件
  • 如何做一个好的网站360网站推广官网
  • 餐饮招商加盟网站建设网站加速器怎么开
  • 网站建设云服务器做网站学的什么专业
  • 帮客户做网站的公司wordpress 文章前空格
  • 单页面网站可以做自适应网站吗摄影的网站设计特点
  • 深圳建企业网站公司平台销售模式有哪些
  • 通讯设备东莞网站建设徐州建设工程公共资源交易平台
  • 系统网站自助建站海口h5建站
  • 建设网站什么语言山东各地网站备案
  • 最优的郑州网站建设利用大平台做网站
  • 签约网站做PPT校园网站建设促进教学
  • 牛商网专注营销型网站建设哪个网站可以免费设计房子
  • 唯品会 一家专门做特卖的网站岳阳市网站建设推广
  • 为自己家秘方做网站oa系统开发公司
  • 安溪哪里有学做网站基金网站建设网站
  • 网站建设的步骤有哪些安徽省工程建设信息官方网站
  • 池州网站制作优化大理网上商城网站建设
  • 端口扫描站长工具网站手机版下悬浮条怎么做
  • 学科建设网站网站制作开票几个点
  • 网站优化报表重庆江津网站建设
  • 传奇免费网站建设咨询公司来公司做调查
  • 国外儿童社区网站模板微信小游戏
  • 帝国网站7.2 pc wap 跳转公司展厅效果图
  • 长安外贸网站建设公司wordpress 顶踩
  • 怎么样制作网站教程wordpress怎么链接到文件夹
  • dw制作网站网页模板绍兴的网站建设公司