scrapy簡單學習4 西刺Ip的爬取

2021-09-19 13:07:12 字數 1666 閱讀 5776

學習**:麥子scrapy第九集

import scrapy

class xiciitem(scrapy.item):

ip=scrapy.field()

port=scrapy.field()

position=scrapy.field()

type=scrapy.field()

speed=scrapy.field()

last_check_time=scrapy.field()

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

import scrapy

from xici.items import xiciitem

class xicispider(scrapy.spider):

name = "xici"

allowed_domains = ["xicidaili.com"]

start_urls = (

'',)

def start_requests(self):#作用:生成初始的request

reqs=#定義resqs(空集)

for i in range(1,206):#設定變數:頁碼1到206

req=scrapy.request("/nn/%s"%i)

return reqs#返回reqs

def parse(self, response):

#提取每一行的xpath位置

ip_list=response.xpath('//table[@id="ip_list"]')#ip_list=xpath提取(table標籤下的"ip_list"屬性)

trs = ip_list[0].xpath('tr')#變數trs=ip_list加入tr標籤

items=#定義items空集

for ip in trs[1:]:#ip的tr從[1以後開始]

pre_item=xiciitem()#pre_item=載入xiciitem()

pre_item['ip'] = ip.xpath('td[3]/text()')[0].extract()#取文字

pre_item['port'] = ip.xpath('td[4]/text()')[0].extract()#取文字

pre_item['position'] = ip.xpath('string(td[5])')[0].extract().strip()

pre_item['type'] = ip.xpath('td[7]/text()')[0].extract()

#speed取到td的title屬性,再用正則(匹配到數字)

pre_item['speed'] = ip.xpath(

'td[8]/div[@class="bar"]/@title').re('\d\.\d')[0]

pre_item['last_check_time'] = ip.xpath('td[10]/text()')[0].extract()

return items#返回專案

爬取西刺ip的插入資料庫相關問題

今晚解決了前幾天爬取西刺ip網不能插入資料庫的問題,成功爬取並插入資料庫的 如下 encoding utf 8 import re import requests from scrapy.selector import selector import mysqldb conn mysqldb.con...

scrapy的學習之路1 簡單的例子

pip install i scrapyscrapy startproject articlespidermain.py是後面建立用來執行scrapy的 spider名 網域名稱 在articlespider建立main.py,可以通過此檔案執行scrapy from scrapy.cmdline ...

MVC4 的簡單學習

1.html元件,提供很多有用的功能,html.textboxfor 這個是可以直接使用model中的東西的 2.2.remote特性,不好用,每次輸入,都要到後台去驗證,這個就有問題了,如果需要連庫查,肯定效能太差了,應該看一下怎麼回事 3和4都這個毛病 3.要詳細看看路由設定啊,很亂 4.如果要...