双师demo
ptpress.com.cn/shopping/index
解析每一首歌
<ul class="f-hide"><li><a href="/song?id=2037945324">芯房</a></li><li><a href="/song?id=2037926385">知足</a></li><li><a href="/song?id=2036808675">经典</a></li><li><a href="/song?id=2036809063">烟</a></li><li><a href="/song?id=2037904328">你啊你啊·2023</a></li><li><a href="/song?id=34723470">东京不太热</a></li><li><a href="/song?id=2036331318">爱不单行</a></li><li><a href="/song?id=2037542587">我要你有我</a></li><li><a href="/song?id=2037916536">仙都梦茶</a></li><li><a href="/song?id=2036803442">MELODY LOVE</a></li><li><a href="/song?id=1961056433">肯定</a></li><li><a href="/song?id=2037202513">迷失的季节</a></li><li><a href="/song?id=2036841029">如期</a></li><li><a href="/song?id=2009060751">不属于地球上的</a></li><li><a href="/song?id=2037930284">葵语</a></li><li><a href="/song?id=2031946213">RUN</a></li><li><a href="/song?id=1978706347">遗憾吗</a></li><li><a href="/song?id=2033897126">迷宫</a></li><li><a href="/song?id=1996476772">Give You What You Want</a></li><li><a href="/song?id=2037917658">数呀数</a></li><li><a href="/song?id=2037904519">人间指南</a></li><li><a href="/song?id=1995089745">Surround Sound</a></li><li><a href="/song?id=2037904394">8Hz</a></li><li><a href="/song?id=1821073603">Falling for You</a></li><li><a href="/song?id=1981557398">孤雏</a></li><li><a href="/song?id=382358">Our Story</a></li><li><a href="/song?id=499673023">越过山丘 (Live)</a></li><li><a href="/song?id=2006721186">我们的歌</a></li><li><a href="/song?id=2024299143">丘比特信号</a></li><li><a href="/song?id=2035180495">姑娘在远方 (青春版)</a></li><li><a href="/song?id=1999314675">赦免</a></li><li><a href="/song?id=2037918332">追逐日落</a></li><li><a href="/song?id=526081111">到此为止</a></li><li><a href="/song?id=2028871055">循迹</a></li><li><a href="/song?id=1318721004">失眠酒</a></li><li><a href="/song?id=1963132367">PLAY</a></li><li><a href="/song?id=1915969053">Do My Ting</a></li><li><a href="/song?id=514765154">世界上的另一个我</a></li><li><a href="/song?id=552575157">Ice On My Baby</a></li><li><a href="/song?id=2037916407">爱煎熬</a></li><li><a href="/song?id=402070838">大地 (Live)</a></li><li><a href="/song?id=2025227743">Cupid (Twin Ver.)</a></li><li><a href="/song?id=2037926081">粉碎机</a></li><li><a href="/song?id=1833837324">你头顶的风</a></li><li><a href="/song?id=2037904735">夏夜没有你,但有海风吹</a></li><li><a href="/song?id=1437188905">你是我昨晚的梦</a></li><li><a href="/song?id=2008251973">吴德周</a></li><li><a href="/song?id=2037542572">日夜迁徙</a></li><li><a href="/song?id=255574">恶作剧</a></li><li><a href="/song?id=1309995372">Coffee</a></li><li><a href="/song?id=2033568298">你会看向我嘛</a></li><li><a href="/song?id=1956990495">Start Again</a></li><li><a href="/song?id=1303027499">总有一天你会出现在我身边</a></li><li><a href="/song?id=2017217006">So Low</a></li><li><a href="/song?id=87111">好想好想</a></li><li><a href="/song?id=1895575577">摊牌</a></li><li><a href="/song?id=2033025814">舍离去 (男女合唱版)</a></li><li><a href="/song?id=2035966239">姑娘在远方</a></li><li><a href="/song?id=2022649218">自知结局</a></li><li><a href="/song?id=347758">大地</a></li><li><a href="/song?id=1479199254">愿爱无忧 (Live)</a></li><li><a href="/song?id=190449">吻别</a></li><li><a href="/song?id=1468115100">不为谁而作的歌</a></li><li><a href="/song?id=2037133801">海</a></li><li><a href="/song?id=2019279516">精卫</a></li><li><a href="/song?id=1996687234">拥抱直到世界毁灭</a></li><li><a href="/song?id=440208643">Psycho, Pt. 2</a></li><li><a href="/song?id=2019562367">恨幸福来过</a></li><li><a href="/song?id=29803535">爱笑的眼睛</a></li><li><a href="/song?id=1447663247">i still think of you</a></li><li><a href="/song?id=2037148762">Hata Boldimu</a></li><li><a href="/song?id=34228130">剩下的盛夏</a></li><li><a href="/song?id=1887031463">杭州,利群,你</a></li><li><a href="/song?id=2037054152">univus</a></li><li><a href="/song?id=2002926115">Players</a></li><li><a href="/song?id=2034542374">流浪猫日记2.0</a></li><li><a href="/song?id=1831899575">Умри, если меня не любишь</a></li><li><a href="/song?id=1913064744">Waiting for Love</a></li><li><a href="/song?id=1407525373">Ex B***h</a></li><li><a href="/song?id=479408221">其实都没有</a></li><li><a href="/song?id=1831946241">Sweet But Psycho</a></li><li><a href="/song?id=2034851941">16BOOSTERZ</a></li><li><a href="/song?id=1960885799">现代史-下</a></li><li><a href="/song?id=115794">一生不变</a></li><li><a href="/song?id=469998923">别问很可怕</a></li><li><a href="/song?id=2003472053">People</a></li><li><a href="/song?id=191252">我们都一样</a></li><li><a href="/song?id=1955734902">Feeling Falling(Song Version)</a></li><li><a href="/song?id=1937340367">A Thousand Years</a></li><li><a href="/song?id=550936829">Ferrari</a></li><li><a href="/song?id=5240852">自由行走的花</a></li><li><a href="/song?id=2034227756">风儿是从哪说</a></li><li><a href="/song?id=2035989613">弥渡山歌(笛子版)</a></li><li><a href="/song?id=1950524577">Molde Canticle</a></li><li><a href="/song?id=2035119931">再见罗曼史</a></li><li><a href="/song?id=2037843658">美しい鰭</a></li><li><a href="/song?id=16435051">Rolling in the Deep</a></li><li><a href="/song?id=2023931078">病</a></li><li><a href="/song?id=1888937212">NEW BOY</a></li><li><a href="/song?id=2034521128">叮咚</a></li></ul>
scrapy
Day8 - 3.scrapy基本使用_哔哩哔哩_bilibili
【左素爬虫】课26 微博Scrapy实现_哔哩哔哩_bilibili30min
前面也有写过,大家可以区看看看
什么是scrapy?
一爬虫中封装好的一个明星框架。功能:高性能的持久化存储,异步的数据下载,高性能的数据解析,分布式
twisted异步数据下载
在路径下载下安装轮子
pip install 轮子
操作
- 创建一个工程:scrapy startproject xxxPro
- 进入文件cd xxxPro
- 创建爬虫文件scrapy genspider spiderName[爬虫文件名字] www.xxx.com[爬虫网址]
- 执行工程:scrapy crawl spiderName[爬虫文件名字]
scrapy crawl first
演示
爬虫first文件讲解
定义一个类,继承spider,包含
三个变量:name:唯一标识 allowed_domains允许的域名
一个方法 : 自动请求,跟request不一样,解析
setting基础配置
不遵守robosts协议
打印日志信息: scrapy crawl first --nolog
LOG_LEVEL='ERROR' 只显示错误日志信息
请求delay相当于sleep
# Configure a delay for requests for the same website (default: 0)
# See Settings — Scrapy 2.8.0 documentation
# See also autothrottle settings and docs
DOWNLOAD_DELAY = 3
创建
pipelines文件并修改
# Configure item pipelines
# See Item Pipeline — Scrapy 2.8.0 documentation
ITEM_PIPELINES = {
"Firstblood.pipelines.RequestsPipeline": 300,
}
爬虫文件的解析
微博爬虫文件书写
Sina Visitor System
设置cookie
日志输出
#初始化url
多个链接,可以放多个请求池
class FirstSpider(scrapy.Spider):
name = "first"
# allowed_domains = ["www.baidu.com"]
start_urls = ["https://weibo.com/ajax/profile/getImageWall?uid=2127946391&sinceid=0&has_album=true"]
#解析数据
def parse(self, response):
ImageWallDict=json.loads(response.text) #转换成字典类型数据
data=ImageWallDict['data'] if 'data' in ImageWallDict else {}
sinceId=data['since_id'] if 'since_id' in data else None
pics=data['list'] if 'list' in data else []
for pic in pics:
pid=pic['pid'] if 'pid' in pic else None
src='https://wx4.sinaimg.cn/mw2000/{}.jpg'.format(pid)
print(src)
# with open('weibo.html','w') as f:
# f.write(response.text)
print(response)
#翻页
if sinceId: #判断是否存在
next_page=self.url.format(sinceId)
#创建scrapy解析池
yield scrapy.Request(url=next_page, callback=self.parse) #解析器是他自己
items创建
2023-04-14 08:12:28 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://weibo.com/ajax/profile/getImageWall?uid=2127946391&sinceid=4887140483072307_4887143686343092|1034:4887143328
448620_20230406_-1&has_album=true> (referer: https://weibo.com/ajax/profile/getImageWall?uid=2127946391&sinceid=4887372570689565_4887149583794583|1034:4887148739100724_20230406_-1&has_album=true)
2023-04-14 08:13:49 [scrapy.extensions.logstats] INFO: Crawled 17 pages (at 6 pages/min), scraped 0 items (at 0 items/min)
2023-04-14 08:15:42 [scrapy.crawler] INFO: Received SIGINT twice, forcing unclean shutdown
scrapy爬虫错误一:无法爬到期望的数据
scrapy爬虫没有任何的返回数据( Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min))
这种情况一般有以下几种可能性:
1. 网络连接问题:爬虫无法连接目标网站,或者连接超时。你可以尝试手动访问目标网站,看是否能够正常访问。如果不能,那么就需要检查网络连接、DNS解析等问题。
2. User-Agent被禁用:一些网站会根据User-Agent屏蔽爬虫,在scrapy中可以通过设置User-Agent来规避这个问题。
3. Robots协议限制:如果网站开启了Robot协议限制,则爬虫将无法进行抓取。你可以在浏览器中查看网站的robots.txt文件以确认是否存在这样的限制。
4. 数据提取规则问题:爬虫虽然能够完成访问和请求,但是无法正确提取所需的数据,这可能是因为Xpath或CSS选择器使用不正确等问题导致的。建议在代码中加入日志或者调试信息,以便迅速排查问题。
5. 其他问题:还有一些其他可能的问题,例如爬虫程序本身逻辑错误、服务器限制等等。建议仔细检查代码,并根据需求调整相关参数。
scrapy爬虫错误一:无法爬到期望的数据_不要影响我叠Q的博客-CSDN博客
代码实列
Scrapy框架的使用之Scrapy爬取新浪微博 - 掘金 (juejin.cn)
GitHub - Python3WebSpider/Weibo: Weibo Spider Using Scrapy
崔清才Python3WebSpider (github.com)
配套文字娇嗔【稳定可用 | 持续更新】微博超级爬虫 | BuyiXiao's Blog