Scrapy框架爬取京东商品

本文介绍了如何使用Scrapy框架抓取京东手机类商品信息,包括解析网页源代码,设置反爬策略,以及将抓取的数据存储到MySQL数据库和CSV文件。在settings.py中配置常规反爬策略,phone.py和pipelines.py是主要编写内容。此外,还分享了从MySQL导出和导入CSV文件的方法,以解决中文乱码问题。
摘要由CSDN通过智能技术生成

这次抓取京东某类商品的信息,这里我选择了手机品类。

使用scrapy爬虫框架,需要编写和设置的文件主要有phone.py , pipelines.py , items.py , settings.py , 其中主要编写的是前两个文件,最后一个文件主要设置破解反爬方法。

phone.py编写程序如下:

import scrapy
from scrapy.http import Request
from jd_phone.items import JdPhoneItem
import re
import urllib.request

class PhoneSpider(scrapy.Spider):
    name = "phone"
    allowed_domains = ["jd.com"]
    start_urls = ['http://jd.com/']

    #获取商品手机100页网址
    def parse(self, response):
        for i in range(1, 100):
            url = "https://search.jd.com/Search?keyword=手机&enc=utf-8&page="+str(i*2-1)
            yield Request(url=url,callback=self.product_url)

    #获取每页商品链接
    def product_url(self, response):
        urls = response.xpath('//div[@class="p-name p-name-type-2"]/a[@target="_blank"]/@href').extract()
        for i in urls:
            url = response.urljoin(i)
            yield Request(url=url, callback=self.product)

    #获取商品的链接,名称,价格,评论数
    def product(self, response):
        #获取标题
        #title = response.xpath("//li[@class='img-hover']/img/@alt").extract()#部分网页不行
        title = response.xpath("//img/@alt").extract()
        #获取id号,用来构造价格和评论的链接
        pattern = r"(\d+)\.html$"
        id = re.findall(pattern, re
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值