Scrapy爬取攜程桂林問答

2022-06-01 06:03:07 字數 2812 閱讀 8129

`id` int(11) not null auto_increment comment '主鍵',

`question` varchar(255) default null comment '問題的標題',

`full_question` varchar(255) default null comment '問題的詳情',

`keyword` varchar(255) default null comment '關鍵字',

`ask_time` varchar(255) default null comment '提問時間',

`accept_answer` text comment '提問者採納的答案',

`recommend_answer` text comment '旅遊推薦的答案',

`agree_answer` text comment '贊同數最高的答案',

primary key (`id`),

unique key `question` (`question`)

) engine=innodb default charset=utf8 comment='桂林_問答表'

guilin.py:

items.py:

# -*- coding: utf-8 -*-

# define here the models for your scraped items

## see documentation in:

# import scrapy

class questionandansweritem(scrapy.item):

# define the fields for your item here like:

# name = scrapy.field()

question = scrapy.field()

# 問題的標題

full_question = scrapy.field()

# 問題的詳情

keyword = scrapy.field()

# 關鍵字

ask_time = scrapy.field()

# 提問時間

accept_answer = scrapy.field()

# 提問者採納的答案

recommend_answer = scrapy.field()

# 旅遊推薦的答案

agree_answer = scrapy.field()

# 贊同數最高的答案

mysqlpipline.py:

from pymysql import connect

class mysqlpipeline(object):

def __init__(self):

self.connect = connect(

host='192.168.1.108',

port=3306,

db='scrapy',

user='root',

passwd='abcdef@123456',

charset='utf8',

use_unicode=true)

# mysql資料庫

self.cursor = self.connect.cursor()

# 使用cursor()方法獲取操作游標

def process_item(self, item, spider):

self.cursor.execute(

"""select *from guilin_ask where question = %s""",

item['question'])

# 是否有重複問題

repetition = self.cursor.fetchone()

if repetition:

pass

# 丟棄

else:

self.cursor.execute(

"""insert into guilin_ask(

question, full_question, keyword, ask_time, accept_answer, recommend_answer, agree_answer)

value (%s, %s, %s, %s, %s, %s, %s)""",

(item['question'],

item['full_question'],

item['keyword'],

item['ask_time'],

item['accept_answer'],

item['recommend_answer'],

item['agree_answer']

))# 執行sql語句,item裡面定義的字段和表字段一一對應

self.connect.commit()

# 提交

return item

# 返回item

def close_spider(self, spider):

self.cursor.close()

# 關閉游標

self.connect.close()

# 關閉資料庫連線

爬蟲 爬取攜程的航班資訊

功能介紹 輸入起點 終點 時間就能得到攜程上的航班資訊 from prettytable import prettytable import requests import json def xiecheng dcity,acity,date date date 0 4 date 4 6 date ...

scrapy 爬取流程

什麼時候到pipeline,什麼 時候到spider這個就不說了,這個是框架跳轉到的流程 關鍵是訪問之前要登入怎麼辦,資料還要注入呢 這是個列表,裡面就是爬取的鏈結了 我們前面爬取就只是寫了乙個,但是其實可以寫多個 鏈結又是怎麼訪問的呢 這東西你就可以手動提取鏈結返回了 這東西你就得好好注意了 從入...

scrapy 爬取小說

速度是相當的快的 爬取整站的 最後結果儲存至mongodb資料庫 pycharm開發還是很好用的 建立專案 scrapy startproject daomubiji 執行專案 scrapy crawl daomubi settings default request headers items t...