用Python Scrapy爬取某電影網站並存儲入mysql
爬取目標:javlib,使用框架Scrapy
首先使用在命令列裡
scrapy startproject projectname
和
scrapy genspider spidername
指令建立爬蟲。
首先定義items.py
import scrapy class AvmoItem(scrapy.Item): # define the fields for your item here like: name = scrapy.Field() pic = scrapy.Field() url = scrapy.Field() id_ = scrapy.Field()
這是spiders資料夾中的爬蟲檔案
spidername.py
# -*- coding: utf-8 -*- import scrapy import os import sys import re import urllib.parse sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/' + '..')) import items class JavbusSpider(scrapy.Spider): name = 'javlibrary' allowed_domains = ['www.ja14b.com'] start_urls = ['http://www.ja14b.com/cn/vl_genre.php?g=cu'] # 爬取目錄頁 def parse(self, response): # 通過xpath指令找到需要爬取的每部電影的url。 for av in response.xpath("//div[@class=\"video\"]"): url = urllib.parse.urljoin('http://www.ja14b.com/cn/', av.xpath("a/@href").extract()[0]) # 將每部電影的URL傳送到parse_movie中進行下一步處理。 yield scrapy.Request(url, callback=self.parse_movie) # 檢查是否有下一頁,如果有下一頁,通過parse遞迴爬取下一頁的內容 next_page = response.xpath("//*[@class=\"page next\"]") if next_page: next_page_url = "http://www.ja14b.com" + response.xpath("//*[@id=\"rightcolumn\"]/div[3]/a[9]/@href").extract()[0] yield scrapy.Request(next_page_url, callback=self.parse) # 對每一部電影進行分析 def parse_movie(self, response): title = response.xpath("//*[@id=\"video_title\"]/h3/a/text()").extract()[0] # 定義新的ITEM item = items.AvmoItem() # 通過regex獲取番號。 id_ = re.search("[a-zA-Z]{2,5}-?\d{2,5}", title).group(0) name = title[len(id_)+1:] pic = "http:" + response.xpath("//*[@id=\"video_jacket_img\"]/@src").extract()[0] # 將每部電影的屬性新增到item中。 item["url"] = response.url item["id_"] = id_ item["name"] = name item["pic"] = pic yield item
然後修改pipelines.py
# 通過pymysql連線電腦上的MySQL import pymysql class AvmoPipeline(object): def __init__(self): # 連線database self.db = pymysql.connect("localhost", "root", "6966xx511", "testDB", charset='utf8mb4', ) # 通過cursor傳達sql指令 self.cursor = self.db.cursor() # 如果table存在,則drop,防止引發衝突。 self.cursor.execute("DROP TABLE IF EXISTS AV") # 建立table av,以番號(id)為primary key,防止重複。 sql = """CREATE TABLE AV ( id VARCHAR(255) NOT NULL, name VARCHAR(255), pic VARCHAR(255), url VARCHAR(255), magnet VARCHAR(255), PRIMARY KEY (id) );""" self.cursor.execute(sql) self.db.commit() def process_item(self, item, spider): # 每次收到一個item即將其加入table self.cursor.execute("ALTER TABLE AV CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;") sql = """INSERT INTO AV(id,name,pic,url) VALUES ('{}','{}','{}','{}');""".format(item['id_'], item['name'], item['pic'], item['url']) self.cursor.execute(sql) self.db.commit() return item def close_spider(self, spider): self.db.close()
這樣,一個包含小電影的爬蟲就成功了,注意如果Scrapy一直顯示403error則需要手動修改settings.py,使ROBOTSTXT_OBEY = False。
相關推薦
用Python Scrapy爬取某電影網站並存儲入mysql
爬取目標:javlib,使用框架Scrapy 首先使用在命令列裡scrapy startproject projectname和scrapy genspider spidername指令建立爬蟲。 首先定義items.pyimport scrapy class Av
用Python爬蟲爬取豆瓣電影、讀書Top250並排序
更新:已更新豆瓣電影Top250的指令碼及網站 概述 經常用豆瓣讀書的童鞋應該知道,豆瓣Top250用的是綜合排序,除使用者評分之外還考慮了很多比如是否暢銷、點選量等等,這也就導致了一些近年來評分不高的暢銷書在這個排行榜上高高在上遠比一些經典名著排名還高,於是在這裡打算重新給To
python 3 爬取某小說網站小說,註釋詳細
每一行都有註釋,不多解釋了 import requests from bs4 import BeautifulSoup import os if __name__ == '__main__': # 要下載的網頁 url = 'https://www.b
java爬取某電影網站資料
使用jsoup獲取動態網站的資料 部分程式碼: /** * 獲取分類的所有相對連結地址 和名稱,儲存到map中,返回資料 * */ public class GetMoviesName { private String url; H
Python3.7爬蟲 大量爬取某小說網站小說並寫入mysql(持續完善中...) 未解決問題:mysql長時間新增超過百萬條數據表鎖甚至崩潰
oot req val page src sele 爬蟲 use uwa 練手之作 代碼中還有很多問題 持續完善中 渣渣阿裏T5 99包郵服務器只開了6個進程 #encoding:utf-8 import requests # 請求 from lxml import
爬取實習僧網站並存儲
# -*- coding:utf-8 -*- import requests,re,time,xlwt headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (
用python爬取某視訊網站彈幕
文章以bilibili的《變態王子與不笑貓》(這是一部正常的日漫,請放心觀看)為例,爬取該番劇下所有視訊的彈幕。困難的地方主要在尋找視訊的cid上,確實花了點時間,最好找到了也有點恍然大悟,再就是請求彈幕的連結地址,也需要去所有請求裡找,耐心很重要。最後,採用多執行緒
python+rabbitMQ抓取某婚戀網站用戶數據
arm art header 留言 ima 數據轉換 公司 頁面 進行 “總是向你索取卻不曾說謝謝你~~~~”,在博客園和知乎上面吸收了很多知識,以後也會在這裏成長,這裏挺好,謝謝博客園和知乎,所以今天也把自己在項目期間做的東西分享一下,希望對朋友們有所幫助。。。。 廢
python scrapy爬取皇冠體育源碼下載網站數據二(scrapy使用詳細介紹)
時間 源碼 保存文件 i+1 zh-cn china flat url def 1、scrapy工程創建皇冠體育源碼下載論壇:haozbbs.com Q1446595067 在命令行輸入如下命令,創建一個使用scrapy框架的工程 scrapy startproject s
python爬蟲,Scrapy爬取豆瓣電影《芳華》電影短評,分詞生成詞雲圖。
專案github地址:https://github.com/kocor01/scrapy_cloud Python版本為3.6 自己寫的簡單架構《python爬蟲,爬取豆瓣電影《芳華》電影短評,分詞生成詞雲圖。》 這個是用Scrapy框架重新實現的 爬蟲
python 爬蟲爬取某網站的漫畫
文章目錄 宣告 前言 思路 流程 程式 結果 宣告 為了表示對網站的尊重,已將網站地址隱藏,下載的漫畫之前我就看過了,所以也會刪掉,絕不侵犯網站的利益。 前言
生產者消費者模型爬取某金融網站資料!Python無所不爬!
那麼這個模型和爬蟲有什麼關係呢?其實,爬蟲可以認為是一個生產者,它不斷從網站爬取資料,爬取到的資料就是食物;而所得資料需要消費者進行資料清洗,把有用的資料吸收掉,把無用的資料丟棄。以上便是對生產者消費者模型的簡單介紹了,下面針對本次爬取任務予以詳細說明。分析站點http://www.cfachina.org/
python scrapy爬取全部豆瓣電影(可能是54萬資料)
(一)爬取環境 win10 python3 scrapy (二)豆瓣電影參考標準 主要參考來自神箭手的雲市場 (三)爬取步驟 主要爬取的欄位有:標題,得分,
python爬蟲——requests抓取某電影網站top100
今天閒的沒事,學習了一下爬蟲方面的知識,然後用requests庫實現了抓取貓眼網站top100電影,還是挺有意思的。 最近用到python比較多,也算是加強了python的運用吧 :-) imp
scrapy爬取豆瓣電影top250
imp port 爬取 all lba item text request top 1 # -*- coding: utf-8 -*- 2 # scrapy爬取豆瓣電影top250 3 4 import scrapy 5 from douban.items i
scrapy爬取西刺網站ip
close mon ins css pro bject esp res first # scrapy爬取西刺網站ip # -*- coding: utf-8 -*- import scrapy from xici.items import XiciItem clas
用Python爬蟲爬取廣州大學教務系統的成績(內網訪問)
enc 用途 css選擇器 狀態 csv文件 表格 area 加密 重要 用Python爬蟲爬取廣州大學教務系統的成績(內網訪問) 在進行爬取前,首先要了解: 1、什麽是CSS選擇器? 每一條css樣式定義由兩部分組成,形式如下: [code] 選擇器{樣式} [/code
Scrapy爬取豆瓣電影top250的電影數據、海報,MySQL存儲
p地址 rom gin ani char 代碼 pipeline print 關閉數據庫 從GitHub得到完整項目(https://github.com/daleyzou/douban.git)1、成果展示數據庫本地海報圖片2、環境(1)已安裝Scrapy的Pycharm
批量爬取某圖片網站的圖片
批量爬取某圖片網站的圖片 宣告:僅用於爬蟲學習,禁止用於商業用途謀取利益 1、網頁解析 (1)開啟veer首頁,F12(谷歌瀏覽器),輸入關鍵字,點選搜尋,點選檢視如圖畫圈位置 (2)檢視search中的Headers,找到請求的URL和請求的paylo
Scrapy爬取貓眼電影評論
Scrapy爬取貓眼電影評論 文章目錄 Scrapy爬取貓眼電影評論 1、尋找評論介面 2、分析介面URL 介面URL規律 構造URL介面 分析JSON引數 3、Scrapy程式碼