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

微店怎么注册开店流程上海优化公司

微店怎么注册开店流程,上海优化公司,网络运维管理平台,宁波男科医院scrapy用于从网站中提取所需数据的开源协作框架。以一种快速、简单但可扩展的方式。 该爬虫框架适合于那种静态页面, js 加载的话,如果你无法模拟它的 API 请求,可能就需要使用 selenium 这种使用无头浏览器的方式来完成你的需求了 入门 imp…

scrapy用于从网站中提取所需数据的开源协作框架。以一种快速、简单但可扩展的方式。

该爬虫框架适合于那种静态页面, js 加载的话,如果你无法模拟它的 API 请求,可能就需要使用 selenium 这种使用无头浏览器的方式来完成你的需求了

入门

import scrapyclass BlogSpider(scrapy.Spider):name = 'blogspider'start_urls = ['https://www.zyte.com/blog/']def parse(self, response):for title in response.css('.oxy-post-title'):# 返回对象yield {'title': title.css('::text').get()}for next_page in response.css('a.next'):# 返回一个连接,爬虫框架会继续请求这个连接,得到响应后再回调 parse 方法yield response.follow(next_page, self.parse)

运行

scrapy runspider myspider.py

代码中通过 main 方式运行调试

# _*_ coding: utf-8 _*_
import os, sys, pprint
from scrapy.cmdline import executedef build_base_config():current_dir_path = os.path.dirname(os.path.abspath(__file__))# sys.path.append(current_dir_name)  # 入口文件 与模块查找路径、import 相对路径导入有影响print('\n当前路径 PATH:', current_dir_path)# pprint.pprint(sys.path)filepath, file_name = os.path.split(current_dir_path)spiders_name = file_namespiders_name = "bestbuy_new_ca"return current_dir_path, spiders_namedef run_product_review():"""运行产品评论"""current_dir_path, spiders_name = build_base_config()# 结果输出到本地 json 文件execute(['scrapy', 'crawl', spiders_name + '-products_review',f'-o{current_dir_path}/temp/product-review.json','-LDEBUG',f'-apath={current_dir_path}/temp/review-links.json','-acollect_exist=1'])if __name__ == '__main__':run_product_review()pass

简单说:使用了 scrapy.cmdline 提供的工具,执行的命令和在命令行中的一致,只是这种方式可以在 idea 工具中进行 debug 调试

入门和实际开发的不同之处:

  1. 开发上:
    a.入门:例子相对简单,工程结构也不怎么注重
    b.生产:相对复杂,在核心开发上差不多,也是如何去解析 html 结构,工程结构上为了调度和复用,可能会更复杂一点
  2. 调度平台:
    a.有使用一些开源的调度平台,因为是通用
    b.还有的可能会再开源的调度平台上,再包装一层自己的调度平台,仅用来展示(符合产品经理的设计)

官方对于动态内容的引导

https://docs.scrapy.org/en/latest/topics/dynamic-content.html

个人感觉这里提供的知识点还是非常具有参考价值的,简单总结:

  • 使用 scrapy shell 工具定位数据源
$ scrapy shell "quotes.toscrape.com/scroll"
(...)
>>> view(response)
  • 使用 scrapy fetch 工具获取响应到文件,这类似与查看网页源代码
scrapy fetch --nolog https://example.com > response.html
  • 复制请求:在浏览器中可以将请求复制为 curl 格式,然后可以使用 form_curl() 来使用
from scrapy import Requestrequest = Request.from_curl("curl 'https://quotes.toscrape.com/api/quotes?page=1' -H 'User-Agent: Mozil""la/5.0 (X11; Linux x86_64; rv:67.0) Gecko/20100101 Firefox/67.0' -H 'Acce""pt: */*' -H 'Accept-Language: ca,en-US;q=0.7,en;q=0.3' --compressed -H 'X""-Requested-With: XMLHttpRequest' -H 'Proxy-Authorization: Basic QFRLLTAzM""zEwZTAxLTk5MWUtNDFiNC1iZWRmLTJjNGI4M2ZiNDBmNDpAVEstMDMzMTBlMDEtOTkxZS00MW""I0LWJlZGYtMmM0YjgzZmI0MGY0' -H 'Connection: keep-alive' -H 'Referer: http""://quotes.toscrape.com/scroll' -H 'Cache-Control: max-age=0'")
  • 解析 JavaScript 代码:html 中有些网站会出现 <script>中间是大段的 json 数据有可能是变量,也有可能是初始化数据之类的</script>,就可以使用
比如是
var data = {"field": "value"};可以使用如下的方式匹配
pattern = r'\bvar\s+data\s*=\s*(\{.*?\})\s*;\s*\n'
json_data = response.css('script::text').re_first(pattern)
json.loads(json_data)
{'field': 'value'}
http://www.tj-hxxt.cn/news/112851.html

相关文章:

  • 网站空间位置是什么seo tdk
  • 河南免费网站建设公司推荐百度免费推广
  • 网站开发 案例qq群引流推广网站
  • wordpress网站域名解析企业培训师
  • 罗湖附近公司做网站建设哪家效益快廊坊关键词优化排名
  • 赣州做网站公司哪家好快优吧seo优化
  • 重庆 网站 备案 查询服装品牌策划及营销推广方案
  • 模仿网站建设站建设南宁网站运营优化平台
  • 成都市网站建设费用及企业世界十大网站排名出炉
  • 龙华网站建设方案表磁力链bt磁力天堂
  • 网站建设平台简介搜索引擎国外
  • 怎么做电商赚钱上海关键词优化排名哪家好
  • 中国做外贸最好的网站有哪些网站快速排名互点软件
  • 河北省住房和城乡建设网站凡科网免费建站
  • 番禺市桥做网站公司企业员工培训课程有哪些
  • html网页设计期末考试性能优化工具
  • 犬舍网站怎么做南昌seo全网营销
  • 变更网站做推广需要备案投诉百度最有效的电话
  • 定制高端网站建设报价seo搜索引擎优化排名报价
  • 铜川网站建设报价电商网站搭建
  • 衡量网站质量的标准互联网产品运营推广方案
  • 从事网站开发需要的证书明天上海封控16个区
  • 哪个网站做脚本seo营销技巧培训班
  • 一起做网店网站特点怎么免费创建网站
  • 上海网站建设 美橙上海推广系统
  • 如皋网站建设中国经济网人事
  • 免费p2p网站建设直销怎么做才最快成功
  • 怎么管理购物网站怎样打小广告最有效
  • 山东网站建设制作公司天津seo标准
  • 如何做转运网站网络广告营销经典案例