Scrapy爬取淘宝网数据的尝试

本文介绍如何利用Scrapy框架爬取淘宝网的商品信息,面对淘宝的反爬策略,作者详细阐述了如何抓取搜索结果的前31页内容,并将数据存储到MongoDB中。

因为想学习数据库,想要获取较大量的数据,第一个想到的自然就是淘宝。。。。其中有大量的商品信息,淘宝网反爬措施还是比较多,特别是详情页面还有恶心的动态内容


该例子中使用Scrapy框架中的基础爬虫(CrawlSpider还有点没搞清楚= = b)

先贴上整体代码

import scrapy
import re
import csv
import pymongo
from tmail.items import TmailItem
class WeisuenSpider(scrapy.Spider):
    name = 'weisuen'
    start_url = 'https://s.taobao.com/search?q=%E5%B8%BD%E5%AD%90&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.50862.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170817&s=300'
    detail_urls=[]
    data=[]
    client=pymongo.MongoClient("localhost",27017)
    db=client.taobao
    db=db.items
    def start_requests(self):
        for i in range(30):#爬31页数据差不多了
            url=self.start_url+'&s='+str(i*44)
            y
Python中的Scrapy是一个强大的网络爬虫框架,可以方便地抓取网站数据,如当当网的商品信息。以下是使用Scrapy抓取当当网数据的基本步骤: 1. 安装Scrapy:首先确保已安装Python,然后通过命令行运行`pip install scrapy`安装Scrapy及其依赖。 2. 创建项目:创建一个新的Scrapy项目,例如`cd ~ && scrapy startproject dangdang_spider`。 3. 创建spider:在`spiders`文件夹下新建一个Python文件,如`dangdang.py`,定义Spider类。需要设置`start_urls`属性,指定开始爬取的页面链接,通常是商品分类页。 ```python import scrapy class DangDangSpider(scrapy.Spider): name = 'dangdang' allowed_domains = ['dangdang.com'] start_urls = ['https://book.dangdang.com/'] def parse(self, response): # 使用XPath或CSS选择器提取感兴趣的数据,比如商品列表、链接等 product_links = response.css('a.product-title::attr(href)').getall() for link in product_links: yield {'link': link} # 访问详情页并递归解析 yield response.follow(link, self.parse_detail) def parse_detail(self, response): # 解析商品详细信息,如标题、价格、评论等 pass # 需要根据实际网页结构编写解析逻辑 ``` 4. 运行爬虫:在项目根目录下运行`scrapy crawl dangdang`启动爬虫Scrapy会自动下载页面、提取数据,并存储到CSV、JSON或其他支持的格式中。 注意,为了保护网站服务器,遵守robots.txt协议,以及尊重网站的服务条款,实际使用时需确保合法合规。同时,网站可能会有反爬机制,如验证码、IP限制等,可能需要处理这些问题或使用代理IP。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值