实战 使用scrapy 爬取代理 并保存到数据库

   爬取网站: www.proxy360.com

   爬取思路: 1.分析首页,2 分析要爬取的目标 3,保存数据

   1 首先分析页面

开始爬取

创建爬虫项目

scrapy startproject daili

创建爬虫

cd daili

scrapy genspider dd proxy360.cn

创建了一个名叫dd的爬虫

在 items.py 下设置需要爬取的内容

这里爬取ip
import scrapy

class DailiItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    ip =scrapy.Field()

    pass
然后进入爬虫目录
在spiders下的 dd.py

# -*- coding: utf-8 -*-
import scrapy
from daili.items import DailiItem  #导入item.py定义的类名

class DdSpider(scrapy.Spider):
    name = "dd"
    allowed_domains = ["www.proxy360.cn"]
    nations = ['Brazil','Chain','Japan','Vietanm'] #定义好要爬取的名字的后缀
start_urls = [] for nation in nations: 使用for 循环依次加载上 start_urls.append('http://www.proxy360.cn/Region/'+nation ) def parse(self, response): #找到要爬取div sc = response.xpath('//div[@class="proxylistitem"]') for sub in sc: 开始依次爬取 item = DailiItem() #调用item定义的类名 item["ip"]= sub.xpath('.//span[1]/text()').extract()[0] yield item 爬取的内容返回到pipelines。py里

配置  setting.py
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
ITEM_PIPELINES = {
    'daili.pipelines.DailiPipeline': 300,
}
进入到pipelines.py

import pymysql   # 使用pymysql 连接 如果没有  使用pip install pymysql 下载

class DailiPipeline(object):
    def __init__(self):
        self.conn = pymysql.connect(host="127.0.0.1",user ="root",password= "root",db="get")
       连接数据库  host 连接地址 user 账号  password密码 
    def process_item(self, item, spider):
        try:
            title = item["ip"] #获取 从dd。py传递过来的 内容
            sql ="insert into daili(ip) VALUES ('"+title+"')"  传到数据库
            print sql
            self.conn.query(sql)
            return item
        except Exception as e:
            pass
        def close_spider(self):
            self.conn.close()  关闭数据库连接










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值