先前發文
DAY 01 : 參賽目的與規劃
DAY 02 : python3 virtualenv 建置
DAY 03 : python3 request
DAY 04 : 使用beautifulsoup4 和lxml
DAY 05 : select 和find 抓取tag
DAY 06 : soup解析後 list取值
DAY 07 : request_header_cookie 通過網頁18限制
DAY 08 : ppt內文爬取
DAY 09 : 資料處理 split replace strip
DAY 10 : python csv 寫入 和dict 合併
DAY 11 : python class function
DAY 12 : crawl 框架 scrapy 使用
DAY 13 : scrapy 架構
DAY 14 : scrapy pipeline data insert mongodb
DAY 15 : scrapy middleware proxy
DAY 16 : scrapy selenium
首先 pip3 install selenium
然後到貢獻者下載自己瀏覽器的driver
目的是在selenium開啟瀏覽器讓網頁有js運作
from selenium import webdriver
import selenium的方法 再到class裡使用全域變數讓webdriver使用Firefox()的function
另外如果browserdriver的版本問題 , 只要查看自己的瀏覽器版本就可以找到相對映的driver版本 , 就可以解決這個問題了!!
class XxxxSpider(scrapy.Spider):
name = 'xxxx'
allowed_domains = ['xxxx.gap.com']
start_urls = [
'https://xxxx.gap.com/browse/'
]
# browser = webdriver.Firefox() 如果已經export 這個瀏覽器 那就直接寫這行code
chromedriver = '/home/kevin/chromedriverK/bin/chromedriver'
driver = webdriver.Chrome(chromedriver)
def parse(self, response):
self.browser.get('https://xxxx.gap.com/browse/product.do?pid=486372002&cid=1122882&pcid=1111336&vid=1&grid=pds_1_218_1#pdp-page-content')
soup = BeautifulSoup(self.browser.page_source, 'lxml')
因為可能有法律問題,那爬取的網址這邊就以xxxx來代替 , 使用時請關閉settings.py
裡的ROBOTSTXT_OBEY
, 實做時請找網頁關閉JavaScript時會消失很多資料且
切出ctrl + shift + i 找不到有js渲染頁面的某些資料的網頁進行實做 ,
再來就是抓取資料跟資料的應用!
但是使用這個方法來爬資料相較於直接抓取api來的慢 , 且跟開啟瀏覽器一模一樣就是吃效能
明天來介紹挖取api來進行資料爬取
歌歌歌!!