python 爬虫相关含Scrapy框架

1、从酷狗网站爬取 新歌首发的新歌名字、播放时长、链接等

from bs4 import BeautifulSoup as BS
import requests
import re
import json
class StockCrawler():

    def __init__(self):
        pass

    def get_stockinfo(self,url):
        res=requests.get(url)
        res.encoding=‘utf-8‘
        soup=BS(res.text,‘html.parser‘)

        stock_info=[]
        div=soup.find_all(‘div‘,id=‘SongtabContent‘)  #定位最外层的新歌区域标签
        li=div[0].find_all(‘li‘)

        for i in li:  #遍历每首歌的标签,分别取歌名、歌播放时长、链接
            print(i)

            link=‘http:‘+i.find_all(‘a‘)[0][‘href‘]
            print(‘link:‘,link)

            songname=i.a.find_all(‘span‘,class_=‘songName‘)[0].text
            songtime=i.a.find_all(‘span‘,class_=‘songTime‘)[0].text
            print(‘songname:‘,songname)
            print(‘songtime:‘,songtime)

            stock_info.append((songname,songtime,link))

        return stock_info

    def write_file(self,data,file_name):
        with open(file_name,‘w‘,encoding=‘utf-8‘) as fp:
            for i in data:
                fp.write(i[0]+‘,‘+i[1]+‘,‘+i[2]+‘\n‘)   #写入文件

if __name__==‘__main__‘:

    url=‘http://www.kugou.com/‘
    stockcrawler=StockCrawler()
    data=stockcrawler.get_stockinfo(url)
    stockcrawler.write_file(data,‘f:\\test\\pppp.txt‘)

2、sohu网站首页 爬取包含"体育"2个字的链接

r = requests.get("http://www.sohu.com")
r.encoding="utf-8"
html  = r.text
soup = BeautifulSoup(html,"html.parser")#html可以是html内容

links = []
for i in list(soup.find_all(["a"])):
    try:
        print(i["href"])
        if i["href"].strip().startswith(r"//"):
            print(1)
            i["href"]="http:"+i["href"]
        if i["href"].find("javascript")>=0:
            print(2)
            continue
        if i["href"].find("mailto")>=0:
            print(3)
            continue
        if len(i["href"].strip())==1:
            print(4)
            continue
        #print(i["href"])
        links.append(i["href"].strip())
        #print("*"*50)
    except Exception as e:
        print(e)

for link in links:
    print(link)

x=1
for link in links:
    r = requests.get(link)
    r.encoding = "utf-8"
    if "体育" in r.text:
        with open("e:\\pic\\"+str(x)+".txt","w",encoding="utf-8") as fp:
            fp.write(r.text)
            x+=1

3、使用代理服务器 发送请求

proxy=‘168.0.86.146:8080‘

#如果代理需要验证,只需要在前面加上用户名密码,如下所示

# proxy=‘username:[email protected]:8888‘
proxies={
    ‘http‘:‘http://‘+proxy,
    ‘https‘:‘https://‘+proxy,
}
try:
    response=requests.get(‘http://httpbin.org/get‘,proxies=proxies)
    print(response.text)
except requests.exceptions.ConnectionError as e:
    print("Error",e.args)

4、Srapy 爬虫框架

#Scrapy 爬虫框架
‘‘‘
scrapy startproject testman

1)items.py 存储你要爬取的数据的变量。
类似于字典。

2)pipelines.py(保存爬取后的数据):保存你抓取网页,分析后的存储的
变量中的数据存入到某个地方。(json文件)txt文件、excel 、数据库。

3)settings.py:设定spider的优先级,自动生成的,取消掉数据就可以了。
ITEM_PIPELINES = {‘gr.pipelines.GrPipeline‘: 300,}

gr:抓取器的名字

4)在spider的目录下,写一下分析逻辑(从网页中取想要的数据,保存到items.py声明的变量中。)

框架使用的步骤:
1 新建scrapy工程,在任意目录下,cmd中执行:scrapy startproject groad
2 生成工程的内容,在scrapy的根目录下cmd中
执行:scrapy genspider newsong www.kugou.com
3 编写相关代码
4 在scrapy的根目录下,cmd执行抓取:scrapy crawl newsong

‘‘‘

原文地址:https://www.cnblogs.com/xiaoxiao075/p/10925542.html

时间: 2024-11-04 09:15:02

python 爬虫相关含Scrapy框架的相关文章

python爬虫----(2. scrapy框架)

Scrapy框架,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. 刚开始学习这个框架.不太好评论.只是感觉这个框架有些Java的感觉,需要太多的其他模块的支持. (一)创建 scrapy 项目 # 使用 scrapy startproject scrapy_test ├── scrapy_test │   ├── scrapy.cfg │   └── scrapy_test │

python爬虫----(6. scrapy框架,抓取亚马逊数据)

利用xpath()分析抓取数据还是比较简单的,只是网址的跳转和递归等比较麻烦.耽误了好久,还是豆瓣好呀,URL那么的规范.唉,亚马逊URL乱七八糟的.... 可能对url理解还不够. amazon ├── amazon │   ├── __init__.py │   ├── __init__.pyc │   ├── items.py │   ├── items.pyc │   ├── msic │   │   ├── __init__.py │   │   └── pad_urls.py │  

python爬虫----(4. scrapy框架,官方文档以及例子)

官方文档: http://doc.scrapy.org/en/latest/ github例子: https://github.com/search?utf8=%E2%9C%93&q=scrapy 剩下的待会再整理...... 买饭去......       --2014年08月20日19:29:20 python爬虫----(4. scrapy框架,官方文档以及例子)

python爬虫----(5. scrapy框架,综合应用及其他)

在分析和处理选择内容时,还需注意页面的JS可能会修改DOM树结构. (一)GitHub的使用 由于之前使用Win,没使用过shell的.目前只是了解.以后再补充.找到几个不错的教程 GitHub超详细图文攻略 http://blog.csdn.net/vipzjyno1/article/details/22098621 Github修改提交 http://www.360doc.com/content/12/0602/16/2660674_215429880.shtml 以后再补充!!!!! (二

Python爬虫进阶之Scrapy框架安装配置

Python爬虫进阶之Scrapy框架安装配置 初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows 平台: 我的系统是 Win7,首先,你要有Python,我用的是2.7.7版本,Python3相仿,只是一些源文件不同. 官网文档:http://doc.scrapy.org/en/latest/intro/install.html,最权威哒,下面是我的亲身体验过程. 1

python爬虫----(3. scrapy框架,简单应用)

(1)创建scrapy项目 scrapy startproject getblog (2)编辑 items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: # http://doc.scrapy.org/en/latest/topics/items.html from scrapy.item import Item, Field class B

零基础写python爬虫之使用Scrapy框架编写爬虫

网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便.使用Scrapy可以很方便的完成网上数据的采集工作,它为我们完成了大量的工作,而不需要自己费大力气去开发. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Item

Python爬虫知识点四--scrapy框架

一.scrapy结构数据 解释: 1.名词解析: o??引擎(Scrapy Engine)o??调度器(Scheduler)o??下载器(Downloader)o??蜘蛛(Spiders)o??项目管道(Item Pipeline)o??下载器中间件(Downloader Middlewares)o??蜘蛛中间件(Spider Middlewares)o??调度中间件(Scheduler Middlewares) 2.具体解析 绿线是数据流向??从初始URL开始,Scheduler会将其交给Do

芝麻HTTP:Python爬虫进阶之Scrapy框架安装配置

初级的爬虫我们利用urllib和urllib2库以及正则表达式就可以完成了,不过还有更加强大的工具,爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows 平台: 我的系统是 Win7,首先,你要有Python,我用的是2.7.7版本,Python3相仿,只是一些源文件不同. 官网文档:http://doc.scrapy.org/en/latest/intro/install.html,最权威哒,下面是我的亲身体验过程. 1.安装Python 安装过程我就不多说啦,我的电