摘要:的安裝環(huán)境是后面創(chuàng)建用來運(yùn)行的名網(wǎng)站域名在創(chuàng)建可以通過此文件運(yùn)行本文件名父文件名路徑和父文件名設(shè)置環(huán)境,必須以上運(yùn)行可能在下會(huì)報(bào)錯(cuò)準(zhǔn)備工作完在下獲取列表頁每一個(gè)的把獲取到的交給
scrapy的安裝 環(huán)境:python3.6 1
pip install -i https://pypi.douban.com/simple/ scrapy
scrapy startproject ArticleSpider
main.py是后面創(chuàng)建用來運(yùn)行scrapy的
cd ArticleSpider scrapy genspider jobbole blog.jobbole.com ------- ---------------- spider名 網(wǎng)站域名
在ArticleSpider創(chuàng)建main.py,可以通過此文件運(yùn)行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__))) #設(shè)置環(huán)境,必須 execute(["scrapy", "crawl", "jobbole"])
以上運(yùn)行可能在win下會(huì)報(bào)錯(cuò)
settings.py
準(zhǔn)備工作完在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): # 獲取列表頁每一個(gè)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("評(píng)論")] 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
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44481.html
摘要:圖片下載和拿到下載后的路徑小封面圖的爬取,后面通過傳到中詳情頁的爬取詳情頁的完整地址下一頁的爬取與請(qǐng)求不明打開功能注意如要進(jìn)一步定制功能補(bǔ)充新建 圖片下載和拿到下載后的路徑 1 items.py import scrapy class InfoItem(scrapy.Item): url = scrapy.Field() url_object_id = scrapy....
摘要:前言本文記錄自己在學(xué)習(xí)當(dāng)中遇到的各種大小問題,持續(xù)更新。錯(cuò)誤分析本身是一個(gè)網(wǎng)絡(luò)引擎框架,的運(yùn)行依賴于。在打開新建的項(xiàng)目后,報(bào)錯(cuò)顯示。錯(cuò)誤分析的默認(rèn)依賴項(xiàng)當(dāng)中沒有,或者說默認(rèn)查找的路徑中找不到。 前言 本文記錄自己在學(xué)習(xí)scrapy當(dāng)中遇到的各種大小問題,持續(xù)更新。 環(huán)境簡介: 語言版本 爬蟲框架 IDE 系統(tǒng) python3.5 scrapy1.4.0 pycharm win1...
摘要:基本優(yōu)化為了不讓每次啟動(dòng)添加它到定義類的初始方法中啟動(dòng)優(yōu)化瀏覽器的自動(dòng)開啟與關(guān)閉在中加入信號(hào)鏈爬蟲結(jié)束會(huì)輸出 1:基本 Middlewares.py(downloader)showImg(https://segmentfault.com/img/bV182i?w=893&h=311); spider/xxx.pyshowImg(https://segmentfault.com/img/...
摘要:以某個(gè)開頭以某個(gè)結(jié)尾某個(gè)任意多次,大于等于讓某個(gè)取消貪婪匹配,可以理解為改為從左到右匹配到某個(gè)為止某個(gè)至少為一次,大于等于例某個(gè)出現(xiàn)到次等或者選或者有三種意思,中括號(hào)的任選一個(gè)就代表號(hào),不代表任意字符了例非 ^ 以某個(gè)開頭 $ 以某個(gè)結(jié)尾 * 某個(gè)任意多次,大于等于0 ? 讓某個(gè)取消貪婪匹配,可以理解為改為從左到右匹配到某個(gè)為止 + 某個(gè)至少為一次,大于...
摘要:保存中的信息到本地文件自定義以格式保存到本地文件再到中添加使用自帶方式以格式保存到本地文件再到中添加使用保存中的信息到同步設(shè)計(jì)表結(jié)構(gòu)注意日期是類型,要轉(zhuǎn)化成類型補(bǔ)充保存中的信息到異步去重寫法 保存item中的信息到本地文件 1.自定義以json格式保存到本地文件 piplines.pyshowImg(https://segmentfault.com/img/bV1PEJ?w=740&h...
閱讀 2601·2021-11-23 09:51
閱讀 3140·2019-08-30 15:54
閱讀 1094·2019-08-30 14:14
閱讀 3568·2019-08-30 13:59
閱讀 1444·2019-08-29 17:09
閱讀 1488·2019-08-29 16:24
閱讀 2873·2019-08-29 15:43
閱讀 940·2019-08-29 12:45