step_by_step_用python爬点磁力链接
今天是小年,团聚的日子,想想这一年中发生过大大小小的事,十分感慨。
言归正传: 接触python ,想着可不可以自己爬它点数据,目的是能够过滤掉他这些令人头痛的广告,当然也可以顺带熟悉一下python 的scrapy框架 那就开始吧
- scrapy startproject btxxxx
- scrapy genspider -t crawl btxxxx xxx.info
spider的代码
- # -*- coding: utf-8 -*-
- import scrapy
- from scrapy.linkextractors import LinkExtractor
- from scrapy.spiders import CrawlSpider, Rule
- import urllib
- from xxx.items import XxxxItem
- import sys
- reload(sys)
- sys.setdefaultencoding('utf8')
- class BtxxxxSpider(CrawlSpider):
- name = 'btxxxx'
- allowed_domains = ['btxxxx.info']
- def __init__(self, key_word='', *args, **kwargs):
- super(BtxxxxSpider, self).__init__(*args, **kwargs)
- self.key_words = key_word
- quote_str = urllib.quote(self.key_words)
- # 网址就不搞出来啦
- zero_url = 'http://www.xxxx.info/search/' + quote_str + '.html'
- self.start_urls = [zero_url]
- rules = (
- Rule(LinkExtractor(allow=r'\/search\/b-[\s\S]*\.html'),callback='root_url', follow=True),
- Rule( LinkExtractor(
- allow=r'\/search\/b-[a-z,A-Z,0-9]+\/[0-9]+-[0-9]+\.html'), callback='content_url', follow=True
- ),
- Rule(LinkExtractor(allow=r'\/wiki\/.*\.html'), callback='parse_item', follow=False)
- )
- def root_url(self, response):
- pass
- def content_url(self, response):
- pass
- def parse_item(self, response):
- i = BtxxxxItem()
- script_txt = response.xpath('//*[@id="wall"]/h2/script/text()').extract()
- if len(script_txt) !=0:
- url_str = script_txt[0].replace('document.write(decodeURIComponent(', '').replace('));', '').replace('"','')
- link_name = urllib.unquote(str(url_str.replace('+', '')))
- i["file_name"] = link_name
- print "*" * 10
- #print link_name
- print "*" * 10
- file_nodes = response.xpath('//*[@id="wall"]/div/table/tr[last()]/td/text()').extract()
- print "#" * 10
- print file_nodes
- print "#" * 10
- if len(file_nodes) > 0 :
- i["file_type"] = file_nodes[0].replace('\n', '')
- i["file_createtime"] = file_nodes[1].replace('\n', '')
- i["file_hot"] = file_nodes[2].replace('\n', '')
- i["file_size"] = file_nodes[3].replace('\n', '')
- i["file_url"] = response.url
- file_link = response.xpath('//*[@id="wall"]/div[1]/div[1]/div[2]/a/@href').extract()
- if len(file_link) > 0:
- i["file_link"] = file_link[0]
- yield i
items的代码
- class BtxxxxItem(scrapy.Item):
- file_type = scrapy.Field()
- file_createtime = scrapy.Field()
- file_hot = scrapy.Field()
- file_size = scrapy.Field()
- file_count = scrapy.Field()
- file_link = scrapy.Field()
- file_name = scrapy.Field()
- file_url = scrapy.Field()
settings 中添加
- FEED_EXPORT_ENCODING = 'utf-8'
并启用 DEFAULT_REQUEST_HEADERS
执行scrapy (设置要检索的关键字和输出的文件)
- scrapy crawl btxxxx -a key_word=xx -o xx.json
简单的爬数据而已,包含网址信息的代码我都已经在文章中删掉,只做学习使用
step_by_step_用python爬点磁力链接的更多相关文章
- DHT协议网络爬虫磁力链接和BT种子搜索引擎
系统功能和用到的技术. 系统包括几个独立的部分: 使用 Python 的 Scrapy 框架开发的网络爬虫,用来爬取磁力链接和种子: 使用 PHP CI 框架开发的简易网站: 搜索引擎目前直接使用的 ...
- 实战Python实现BT种子转化为磁力链接
经常看电影的朋友肯定对BT种子并不陌生,但是BT种子文件相对磁力链来说存储不方便,而且在网站上存放BT文件容易引起版权纠纷,而磁力链相对来说则风险小一些. 将BT种子转换为占用空间更小,分享更方便的磁 ...
- python爬取博客圆首页文章链接+标题
新人一枚,初来乍到,请多关照 来到博客园,不知道写点啥,那就去瞄一瞄大家都在干什么好了. 使用python 爬取博客园首页文章链接和标题. 首先当然是环境了,爬虫在window10系统下,python ...
- 使用Python实现搜索任意电影资源的磁力链接
对于喜欢电影的人来说各种电影资源必不可少,但每次自己搜索都比较麻烦,索性用python自己写一个自动搜索的脚本. 这里我只分享我的思路,具体如何实现参考代码,要想实现搜索功能先要抓包分析如何发送数据, ...
- python爬去电影天堂恐怖片+游戏
1.爬去方式python+selenium 2.工作流程 selenium自动输入,自动爬取,建立文件夹,存入磁力链接到记事本 3.贴上代码 #!/usr/bin/Python# -*- coding ...
- 利用Python爬取电影网站
#!/usr/bin/env python #coding = utf-8 ''' 本爬虫是用来爬取6V电影网站上的电影资源的一个小脚本程序,爬取到的电影链接会通过网页的形式显示出来 ''' impo ...
- 使用python爬取MedSci上的期刊信息
使用python爬取medsci上的期刊信息,通过设定条件,然后获取相应的期刊的的影响因子排名,期刊名称,英文全称和影响因子.主要过程如下: 首先,通过分析网站http://www.medsci.cn ...
- Python 爬取美团酒店信息
事由:近期和朋友聊天,聊到黄山酒店事情,需要了解一下黄山的酒店情况,然后就想着用python 爬一些数据出来,做个参考 主要思路:通过查找,基本思路清晰,目标明确,仅仅爬取美团莫一地区的酒店信息,不过 ...
- python 爬取历史天气
python 爬取历史天气 官网:http://lishi.tianqi.com/luozhuangqu/201802.html # encoding:utf-8 import requests fr ...
随机推荐
- 从Wos文本数据中获取摘要进行分析的一种方法
namespace 清理数据 { class Program { static void Main(string[] args) { string strDirName = "File&qu ...
- windows github 下载慢 修改hosts
参考:Github访问速度慢和下载慢的解决方法 [Github]windows上访问github慢的解决方法 方法:绕过dns解析,在本地直接绑定host,该方法也可加速其他因为CDN被屏蔽导致访问慢 ...
- nfs与dhcp服务
NFS服务端概述 NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS: NFS允许一个系统在网络上与他人共享目录 ...
- mysql索引总结(转)
mysql索引总结----mysql 索引类型以及创建 文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好 ...
- 三、CSS样式——文本
CSS文本 概念:CSS文本属性可定义文本外观 通过文本属性,可以改变文本的颜色.字符间距.对齐文本.装饰文本.对文本缩进 属性 描述 color 文本颜色 direction 文本方向 line-h ...
- java9 Local-variable type inference
var ls = Arrays.asList("1","2"); System.out.println(ls);
- Oracle不常用SQL
Oracle 查询最近创建的表 select * from user_objects where object_type='TABLE' order by created desc Oracle 查询 ...
- 文件系统的描述信息-/etc/fstab
/etc/fstab文件包含众多文件系统的描述信息.文件中每一行为一个文件系统的描述,每行的选项之间通过tab分隔,#开头的行会被转换为注释,空白行会被忽略./etc/fstab文件中的设备顺序很重要 ...
- leetcode每日刷题计划-简单篇day9
Num 38 报数 Count and Say 题意读起来比较费劲..看懂了题还是不难的 注意最后的长度是sz的长度,开始写错写的len 在下次计算的时候len要更新下 说明 直接让char和int进 ...
- Channels实现扫码登录
参考了下别人说的原理,根据自己的逻辑实现,没有完全按照别人的原理来,所以不一定适用于大家,仅供参考吧!!! 流程如下: 1. web发起websocket链接,后端接受链接后立马发送第一次消息,为全局 ...