Python每日学习总结(五)

1.Scrapy爬虫

1.Scrapy框架的安装:

(1)什么是Scrapy框架:Scrapy是一个Python爬虫框架

(2)少坑版安装方式:

2.Scrapy框架常见命令实战:

全局命令(scrapy -h):fatch(爬);runspider(运行一个爬虫)......

项目命令:

3.Scrapy爬虫:

第一个Scrapy爬虫:以爬取糗事百科为例

scrapy startproject name(新建爬虫)

scrapy crawl name(运行爬虫)

4.Scrapy自动爬虫实战:

(1)糗事百科自动爬虫实战(crawl):

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from scrapy.http import Request
from qsauto.items import QsautoItem


class Qiushi1Spider(CrawlSpider):
    name = 'qiushi1'
    allowed_domains = ['qiushibaike.com']
    '''
    start_urls = ['http://qiushibaike.com/']
    '''
    def start_request(self):
        ua={"user-Agent":'Mozilla/5.0(windows NT 6.1; WOW64) Applewebkit/537.36(KHTML, like Gecko) Chrome/49.0.2623.22 SE 2.X MetaSr 1.0'}
        yield Request('http://www.qiushibaike.com/',headers=ua)
    rules = (
        Rule(LinkExtractor(allow=r'acticle'), callback='parse_item', follow=True),
    )

    def parse_item(self, response):
        i = QsautoItem
        #item['domain_id'] = response.xpath('//input[@id="sid"]/@value').get()
        #item['name'] = response.xpath('//div[@id="name"]').get()
        #item['description'] = response.xpath('//div[@id="description"]').get()
        i=FirstItem
        i["content"]=response.xpath("//div[@class='content']/span/text()").extract()
        i["link"]=response.xpath("//a[@class='contentHerf']/herf").extract()
        print(i["content"])
        print(i["link"])
        return i

2.自动模拟登陆爬虫实战

(1)自动模拟登陆爬虫实战(豆瓣网):


3.当当网爬虫实战

(1)当当商城爬虫实战(如何将爬到的内容写进数据库):

import scrapy
from dangdang.items import DangdangItem
from scrapy.http import Request

class DdSpider(scrapy.Spider):
    name = 'dd'
    allowed_domains = ['dangdang.com']
    start_urls = ['http://dangdang.com/']

    def parse(self, response):
        item=DangdangItem()
        item["tital"]=response.xpath("//a[@class='pic']/@tital").extract()
        item["link"] = response.xpath("//a[@class='pic']/@href").extract()
        item["comment"] = response.xpath("//a[@name='_1_p']/text").extract()
        yield item
        for i in range()
            url="http://category.dangdang.com/pg"+str(i)+"-cp01.54.06.00.00.00.html"
            yield Request(url,callback=self.parse)

pipelines:

class DangdangPipeline:
    def process_item(self, item, spider):
        for i in range(0,len(item["tital"])):
            tital=item["tital"]
            link=item["link"]
            comment=item["comment"]
            print(tital)
            print(link)
            print(comment)
        return item

items:

class DangdangItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    tital=scrapy.Field()
    link=scrapy.Field()
    comment=scrapy.Field()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Python每日一学"是一个提供每天学习一个Python知识点的系列文章。这个系列包含多个主题,比如切片、回文字符串、回文素数等。其中,切片是一种用于获取列表、字符串、元组等序列对象的子集的方法。切片的语法是s[start:end:step],可以根据需要指定起始位置、结束位置和步长来获取子集。回文字符串是指正着读和反着读都一样的字符串。可以使用切片方法将字符串反转,并与原字符串进行比较,如果相同则是回文字符串。回文素数是同时满足回文和素数条件的数,即既是回文数又是素数。可以通过判断一个数是否既是回文数又是素数来确定是否为回文素数。"Python每日一学"系列中还包含其他主题,比如输出成绩、提取身份号码中的日期与性别等。在输出成绩的例子中,通过判断一个数是否既是回文数又是素数来输出小于给定数的回文素数。总之,"Python每日一学"是一个帮助学习者每天学习一个Python知识点的系列文章,涵盖了多个主题和实例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python每日一学 07——切片](https://blog.csdn.net/qq_52417436/article/details/128112888)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值