摘要:的安裝環境是后面創建用來運行的名網站域名在創建可以通過此文件運行本文件名父文件名路徑和父文件名設置環境,必須以上運行可能在下會報錯準備工作完在下獲取列表頁每一個的把獲取到的交給
scrapy的安裝 環境:python3.6 1
pip install -i https://pypi.douban.com/simple/ scrapy
scrapy startproject ArticleSpider
main.py是后面創建用來運行scrapy的
cd ArticleSpider scrapy genspider jobbole blog.jobbole.com ------- ---------------- spider名 網站域名
在ArticleSpider創建main.py,可以通過此文件運行scrapy
from scrapy.cmdline import execute import sys import os # print(__file__) #本文件名 # print(os.path.dirname(__file__)) #父文件名 # print(os.path.abspath(os.path.dirname(__file__))) #路徑和父文件名 sys.path.append(os.path.dirname(os.path.abspath(__file__))) #設置環境,必須 execute(["scrapy", "crawl", "jobbole"])
以上運行可能在win下會報錯
settings.py
準備工作完在jobbole.py下
# -*- coding: utf-8 -*- import scrapy from scrapy.http import Request import re from urllib import parse class JobboleSpider(scrapy.Spider): name = "jobbole" allowed_domains = ["blog.jobbole.com"] start_urls = ["http://blog.jobbole.com/all-posts/"] def parse(self, response): # 獲取列表頁每一個item的url post_urls = response.css("#archive .floated-thumb .post-thumb a::attr(href)").extract() for post_url in post_urls: print(post_url) yield Request(url=parse.urljoin(response.url, post_url), callback=self.parse_info) # 把獲取到的url交給詳情頁的方法處理 # 獲取下一頁的url next_url = response.css(".next.page-numbers::attr(href)").extract_first() if next_url: yield Request(url=parse.urljoin(response.url, next_url), callback=self.parse) # 把獲取到的下一頁的url交給自己的方法處理 """獲取詳情頁的信息""" def parse_info(self, response): # 以下都是獲取詳情頁信息 res_title = response.xpath("http://div[@class="entry-header"]/h1/text()").extract_first() res_date = response.xpath("http://p[@class="entry-meta-hide-on-mobile"]/text()").extract_first().strip().replace("·", "").strip() res_zhan = response.xpath("http://span[contains(@class, "vote-post-up")]/h10/text()").extract_first() res_content = response.xpath("http://div[@class="entry"]/p/text()").extract_first() res_cate_a = response.xpath("http://p[@class="entry-meta-hide-on-mobile"]/a/text()").extract_first() res_cate_b = [i.strip() for i in res_cate_a if not i.strip().endswith("評論")] res_cate_c = ",".join(res_cate_b) res_shoucang = response.xpath("http://div[@class="post-adds"]/span[2]/text()").extract_first().strip() match_obj1 = re.match(".*(d+).*", res_shoucang) if match_obj1: res_shoucang = match_obj1.group(1) else: res_shoucang = 0 res_comment = response.xpath("http://div[@class="post-adds"]/a/span/text()").extract_first().strip() match_obj2 = re.match(".*(d+).*", res_comment) if match_obj2: res_comment = match_obj2.group(1) else: res_comment = 0
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44481.html
摘要:圖片下載和拿到下載后的路徑小封面圖的爬取,后面通過傳到中詳情頁的爬取詳情頁的完整地址下一頁的爬取與請求不明打開功能注意如要進一步定制功能補充新建 圖片下載和拿到下載后的路徑 1 items.py import scrapy class InfoItem(scrapy.Item): url = scrapy.Field() url_object_id = scrapy....
摘要:前言本文記錄自己在學習當中遇到的各種大小問題,持續更新。錯誤分析本身是一個網絡引擎框架,的運行依賴于。在打開新建的項目后,報錯顯示。錯誤分析的默認依賴項當中沒有,或者說默認查找的路徑中找不到。 前言 本文記錄自己在學習scrapy當中遇到的各種大小問題,持續更新。 環境簡介: 語言版本 爬蟲框架 IDE 系統 python3.5 scrapy1.4.0 pycharm win1...
摘要:基本優化為了不讓每次啟動添加它到定義類的初始方法中啟動優化瀏覽器的自動開啟與關閉在中加入信號鏈爬蟲結束會輸出 1:基本 Middlewares.py(downloader)showImg(https://segmentfault.com/img/bV182i?w=893&h=311); spider/xxx.pyshowImg(https://segmentfault.com/img/...
摘要:以某個開頭以某個結尾某個任意多次,大于等于讓某個取消貪婪匹配,可以理解為改為從左到右匹配到某個為止某個至少為一次,大于等于例某個出現到次等或者選或者有三種意思,中括號的任選一個就代表號,不代表任意字符了例非 ^ 以某個開頭 $ 以某個結尾 * 某個任意多次,大于等于0 ? 讓某個取消貪婪匹配,可以理解為改為從左到右匹配到某個為止 + 某個至少為一次,大于...
摘要:保存中的信息到本地文件自定義以格式保存到本地文件再到中添加使用自帶方式以格式保存到本地文件再到中添加使用保存中的信息到同步設計表結構注意日期是類型,要轉化成類型補充保存中的信息到異步去重寫法 保存item中的信息到本地文件 1.自定義以json格式保存到本地文件 piplines.pyshowImg(https://segmentfault.com/img/bV1PEJ?w=740&h...
閱讀 2570·2021-11-23 09:51
閱讀 3120·2019-08-30 15:54
閱讀 1070·2019-08-30 14:14
閱讀 3542·2019-08-30 13:59
閱讀 1393·2019-08-29 17:09
閱讀 1468·2019-08-29 16:24
閱讀 2848·2019-08-29 15:43
閱讀 911·2019-08-29 12:45