1、spider目錄下爬蟲專案(duo_te_rui.py)
import scrapy
import re
from duo_te_rui.items import duoteruiitem
class duoteruispider(scrapy.spider):
# 爬蟲專案名
name = 『duo_te_rui』
# 爬蟲允許的域
allowed_domains = [『doterra.cn』]
# 爬蟲的起始url
start_urls =
# 替換所有的html標籤
def re_html(self, data):
# 替換抓取資料中的html標籤
try:
message = str(data)
re_h = re.compile(']*>') # html標籤
ret1 = re_h.sub('', message)
ret2 = re.sub(r'\n', '', ret1)
ret3 = re.sub(r'\u3000', '', ret2)
return ret3
except:
pass
def start_requests(self):
for i in range(1, 4):
yield scrapy.request(url=''.format(i), callback=self.parse)
def parse(self, response):
# 精油列表
item_list = response.xpath('//div[@class="main"]/div[2]/div[2]/ul/li')
# print(len(item_list))
# 建立item例項
item = duoteruiitem()
# 遍歷精油列表,獲取單個物品資料
for data in item_list:
item['精油名'] = data.xpath('./div/h2/a/text()').extract_first()
item['鏈結'] = data.xpath('./a/img/@src').extract_first()
item['精油規格'] = data.xpath('./div/div[2]/span/text()').extract_first()
print(item)
# # 返回資料給引擎
# yield item
pass
2、將抓取資料匯入資料庫(新建乙個目錄templates(duo_te_rui.py))
import json
import requests
import sys
import time
import chardet
from sqlalchemy import create_engine
from sqlalchemy import column
from sqlalchemy import integer
from sqlalchemy import string
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
engine = create_engine(「mysql+pymysql:
encoding=『utf-8』, echo=true)
session_class = sessionmaker(bind=engine) # 例項和engine繫結
session = session_class() # 生成session例項,相當於游標
base = declarative_base() # 生成orm基類
class parsedata(base):
tablename= 『jing_you_data』 # 表名
id = column(integer, primary_key=true)
jing_you_name = column(string(50))
image_url = column(string(250))
gui_ge = column(string(25))
def __init__(self):
# 建立表結構(這裡是父類調子類)
base.metadata.create_all(engine)
# 儲存到mysql資料庫中去
def insert(self):
try:
session.add(self) # 把要建立的資料物件新增到這個session裡, 一會統一建立
session.commit() # 現此才統一提交,建立資料
except exception as e:
print(e)
session.rollback()
def to_mysql(self, item):
data = item
self.jing_you_name = data['精油名']
self.image_url = data['鏈結']
self.gui_ge = data['精油規格']
self.insert()
pass
3、在pipelines裡面將資料傳入templates目錄下的duo_te_rui.py,將資料匯入mysql資料庫
from duo_te_rui.templates.duo_te_rui import *
class duoteruipipeline(object):
def process_item(self, item, spider):
parse = parsedata()
parse.to_mysql(item)
return item
python抓取京東的商品資訊
1.安裝python開發環境 2.requests庫 beautifulsoup庫 3.具備python一定基礎 1.經過分析可以知道keywork為搜尋關鍵字 2.page引數為篩選商品的頁下標,每頁30條資料 3.ev引數為篩選商品的 引數 1.我們發現商品的資料是訪問url直接返回來的 所以我...
如何利用Xpath抓取京東網商品資訊
html檔案其實就是由一組尖括號構成的標籤組織起來的,每一對尖括號形式乙個標籤,標籤之間存在上下關係,形成標籤樹 xpath 使用路徑表示式在 xml 文件中選取節點。節點是通過沿著路徑或者 step 來選取的。京東網 商品 商品資訊在京東官網上的部分網頁原始碼如下圖所示 資訊在京東官網上的網頁原始...
爬取京東商品資訊
爬取京東商品資訊 from selenium import webdriver from selenium.webdriver import chromeoptions from selenium.webdriver import actionchains from selenium.webdriv...