为何选择煎蛋
一直看人家写爬虫,现在自己开写一个试试。但是,我现在刚起步,只能选择容易爬取的网站。那为何选择煎蛋呢?因为煎蛋有福利,而且反爬技术不高,嘿嘿嘿。
爬虫环境
系统:Windows 10
Python版本:Python 3.5
爬虫框架:Scrapy
编写步骤
- 使用virtualenv,创建虚拟环境,具体步骤我就不写了,详见之前的文章
- 进入虚拟环境后,使用
scrapy startproject ImageSpider
创建项目。进入项目目录后,再使用scrapy genspider jiandan jiandan.net/ooxx
创建煎蛋的爬虫模板,如下。# -*- coding: utf-8 -*- import scrapy class JiandanSpider(scrapy.Spider): name = 'jiandan' allowed_domains = ["jandan.net/ooxx/"] start_urls = ['http://jandan.net/ooxx/'] def parse(self, response): pass
- 通过使用
scrapy shell http://jiandan.net/ooxx/
进行调试,最终,我得到,获取页面上所有的图片链接的代码为:response.css("#comments > ol p > a::attr(href)").extract()
,其结果是数组,获取下一页链接的代码为:response.css('#comments a[title="Older Comments"]::attr(href)').extract_first("None")
其结果为字符串。 - 既然需要获取的链接已经全部得到,那么,我们开始编写逻辑。(由于本人在图片下载方面有所欠缺,因此,我只是把链接爬取到了,图片下载的逻辑没有弄好,后续更新)
# -*- coding: utf-8 -*- import scrapy # import codecs # from ImageSpider.items import item class JiandanSpider(scrapy.Spider): name = 'jiandan' allowed_domains = ["jandan.net/ooxx/"] start_urls = ['http://jandan.net/ooxx/'] next_page = None def parse(self, response): header = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en', 'Referer': 'http://jandan.net/ooxx' } # Image_Item = item() # 页面上的图片的链接 image_urls = response.css("#comments > ol p > a::attr(href)").extract() length = len(image_urls) # 数组长度 for i in range(0, length): image_url = "http:" + image_urls[i] print(image_url) # 文件I/O不是很会,先放这里 # self.file = codecs.open("photo_link.txt", 'w', encoding="utf-8") # self.file.write(image_url) # self.file.close() # 下一页链接 self.next_page = response.css('#comments a[title="Older Comments"]::attr(href)').extract_first("None") if self.next_page != None: header['Referer'] = self.next_page print(self.next_page) if self.next_page: # 将下一页链接交给yield下载,并回调parse yield scrapy.Request(self.next_page, headers=header, callback=self.parse)
使用
scrapy crawl jiandan
就可以开始运行了,但是由于煎蛋也有反爬技术,防止IP被封,我就没有爬取太多链接,我爬取的一部分链接如下:http://wx1.sinaimg.cn/large/006K6QO5gy1fitq1us44tj30zk0qodm6.jpg http://wx4.sinaimg.cn/large/661eb95cgy1fitinl54hlj20yg0xi42t.jpg http://wx4.sinaimg.cn/large/661eb95cgy1fitinjwel5j20zk0zkx2f.jpg http://ws3.sinaimg.cn/large/0067Dm70ly1fithtk7cfvg306t04j1kx.gif http://wx3.sinaimg.cn/large/0067Dm70ly1fithpjdlnqj30gk0ovdjv.jpg http://wx3.sinaimg.cn/large/0067Dm70ly1fithop83o1j30m80tmq55.jpg http://ws2.sinaimg.cn/large/a2980b19gy1fitexdbpryj20zk1hcq7m.jpg http://wx1.sinaimg.cn/large/006Txc22gy1fitbzv95yaj30k00u0jvh.jpg http://wx1.sinaimg.cn/large/006V4y8Ogy1fihb8px6c3j30ci0hcdgx.jpg http://wx3.sinaimg.cn/large/e29b5221gy1fiaerts7z6j20qo0xz460.jpg http://wx1.sinaimg.cn/large/e29b5221gy1ficqe9ctknj20j60pkdhy.jpg http://wx4.sinaimg.cn/large/96c1121bgy1fit1f7ihiuj22601g04qq.jpg http://wx1.sinaimg.cn/large/96c1121bgy1fisz9ycsp8j20iy0sg0zi.jpg http://wx2.sinaimg.cn/large/006EmN5xly1fisylssk8fj31kw2asqb7.jpg http://ws3.sinaimg.cn/large/6c0cd6aagy1fiswwjmu0bj20qo0xctoc.jpg http://ws2.sinaimg.cn/large/5950978dly1fisubdexjsj20kv0rsb29.jpg http://wx4.sinaimg.cn/large/bd00df6fgy1fisjbew1t7g20dr07qnpd.gif http://wx2.sinaimg.cn/large/661eb95cgy1firkow1hb1j21hc0u0npd.jpg http://wx3.sinaimg.cn/large/661eb95cly1firitajkkgj20dw0ku0tz.jpg http://wx1.sinaimg.cn/large/661eb95cly1firit9wnzdj20bu0hsq3f.jpg http://wx1.sinaimg.cn/large/661eb95cly1firit8vaswj20b40dct9i.jpg http://wx1.sinaimg.cn/large/9ec19de8ly1firrbtgt5vj20np0zkgpg.jpg http://wx4.sinaimg.cn/large/9ec19de8ly1firrbe7pbdj20nm0zkafu.jpg http://wx2.sinaimg.cn/large/9ec19de8ly1firrbdge5ij20np0zk0x1.jpg http://jandan.net/ooxx/page-275#comments http://wx4.sinaimg.cn/large/9ec19de8ly1firta8vawij20vj18gtd3.jpg http://wx3.sinaimg.cn/large/9ec19de8ly1firta7xbtvj20vj18g0yk.jpg http://wx3.sinaimg.cn/large/3d8ab23cgy1fisndswa5qj20c80eut9d.jpg http://wx3.sinaimg.cn/large/e29b5221gy1fi68dgx3ojj20fo0ex75s.jpg http://wx1.sinaimg.cn/large/e29b5221gy1fimzpac1lrj20k00p7406.jpg http://ws3.sinaimg.cn/large/7d2e855dly1fisp5j2m7qj20de0kuq7e.jpg http://wx3.sinaimg.cn/large/973dd02bgy1fismmnmp8ej20b409otez.jpg http://wx4.sinaimg.cn/large/973dd02bgy1fismmc1d9cj20lo0eiwr9.jpg http://ws1.sinaimg.cn/large/973dd02bgy1fismm24dztj20ks0epaqe.jpg http://wx4.sinaimg.cn/large/973dd02bgy1fismlkledjg20dw07ynol.gif http://ws1.sinaimg.cn/large/973dd02bgy1fisml8z6xgj20m90xcdhk.jpg http://wx4.sinaimg.cn/large/bd00df6fgy1fismgtot0hj20go0m8tad.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fism6rumvlj20u011iu0x.jpg http://wx3.sinaimg.cn/large/9f0e9ec6gy1fism62gv29j20u011i77m.jpg http://wx4.sinaimg.cn/large/9f0e9ec6gy1fism65o7yuj20u0102gpd.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fism5s81uyj20hs0hsdhd.jpg http://wx2.sinaimg.cn/large/9f0e9ec6gy1fism5mf8x7j20u00u0dlb.jpg http://wx3.sinaimg.cn/large/9f0e9ec6gy1fism5j6ms5j20u011i77x.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fism5g2bybj20u011iaem.jpg http://wx4.sinaimg.cn/large/9f0e9ec6gy1fism5cttb7j20qo0qojty.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fism1y38jkj20u00u0tvt.jpg http://wx3.sinaimg.cn/large/9f0e9ec6gy1fism1tzqy2j20u011i76r.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fism1o19u5j20u011ijvn.jpg http://wx2.sinaimg.cn/large/9f0e9ec6gy1fism1jg1r9j20nm0nmwgs.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fism1bnciij20u011igno.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fislz4yfzzj20kg0pk40c.jpg http://jandan.net/ooxx/page-274#comments http://wx2.sinaimg.cn/large/9f0e9ec6gy1fislz0eyqqj20u00u0qa6.jpg http://wx4.sinaimg.cn/large/9f0e9ec6gy1fislyuw9x5j20hs0m8gmw.jpg http://wx4.sinaimg.cn/large/9f0e9ec6gy1fislyk4bnaj20u00ppta9.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fislyfpbhgj20m80rs75n.jpg http://wx2.sinaimg.cn/large/9f0e9ec6gy1fislsitpsuj20u00jy762.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fislsngr3ej20u00u048g.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fislste0s7j20u011iq4e.jpg http://wx3.sinaimg.cn/large/9f0e9ec6gy1fislsxqiufj20qo0xcwgs.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fislt7yu7ej20u00u0djr.jpg http://wx4.sinaimg.cn/large/85754795gy1fislqbua3xg20dc077e81.gif http://wx1.sinaimg.cn/large/006qcTrDgy1firr3u44xyj30qo13ztfa.jpg http://ws1.sinaimg.cn/large/6f8a2832gy1fidpiixosaj218g0p0aig.jpg http://wx1.sinaimg.cn/large/9f0e9ec6gy1fisj050txbg206y06yqv5.gif http://wx2.sinaimg.cn/large/4758cde5gy1firb0wieixj20j60t6wif.jpg http://wx3.sinaimg.cn/large/006i7pDIgy1fisfg11igig30gw0u01l5.gif http://wx1.sinaimg.cn/large/006i7pDIgy1fisfgl5pyfg30gw0u0qvg.gif http://wx3.sinaimg.cn/large/e00d3251gy1fisfmr4g5wj20u02vib2a.jpg http://wx2.sinaimg.cn/large/64bd7fffgy1fise25dd7gj20f00f0abt.jpg http://wx1.sinaimg.cn/large/64bd7fffgy1fise275rr4j20f00f0tan.jpg http://wx1.sinaimg.cn/large/64bd7fffgy1fise26aoz8j20f00gwaaw.jpg http://wx1.sinaimg.cn/large/64bd7fffgy1fise27msl1j20f00f03zm.jpg http://wx4.sinaimg.cn/large/64bd7fffgy1fise28edb1j20f00f00tp.jpg http://wx2.sinaimg.cn/large/cd770802gy1fisdg41dyoj2140138kjl.jpg http://wx3.sinaimg.cn/large/c1d0f1f0ly1fis8aw8e96g206y07se81.gif http://ws1.sinaimg.cn/large/cd770802gy1fis7gngws0j2140138kjl.jpg http://wx2.sinaimg.cn/large/005TKA75gy1fip17c2t1ej30xc1e0n84.jpg http://wx3.sinaimg.cn/large/a0743fbely1fis6vai8oaj20jg0rsngl.jpg http://ws2.sinaimg.cn/large/bcd523a5ly1fis4y53j4pg209q0f5x6p.gif http://wx4.sinaimg.cn/large/005N2QgRgy1firt7txdr9j30zk1hck9m.jpg http://wx1.sinaimg.cn/large/006VfFm9gy1firswiqna4j30b40godgx.jpg http://wx2.sinaimg.cn/large/006VfFm9gy1firswcfsadj30dz0kuabh.jpg http://wx4.sinaimg.cn/large/006VfFm9gy1firsw6pgtwj30g40o60ub.jpg http://wx3.sinaimg.cn/large/96c1121bgy1firrm6bbx2j20b40gotbf.jpg http://wx1.sinaimg.cn/large/006xtmYzgy1fgq6jmiyqmj32ip1w0u12.jpg http://wx1.sinaimg.cn/large/006xtmYzgy1fgq6jtd845j32ip1w01l2.jpg http://wx3.sinaimg.cn/large/006xtmYzgy1fgq6k0kyyej32ip1w0qv9.jpg
声明
以上就是我的最初级的煎蛋爬虫,以后会慢慢填充其他功能,图片下载功能,图片过滤功能,代理设置等等。欢迎自己动手玩玩!^_^
最新评论
没有收到邮件通知
我的评论通知貌似坏掉了,定位一下问题
测试一下重新部署后的邮件功能
居然看到自己公司的MIB库,诚惶诚恐
那可能是RobotFramework-ride的版本问题。我装的1.7.4.2,有这个限制。我有空再尝试下旧版本吧,感谢回复。
你好!我在python2.7中安装RobotFramework-ride的时候提示wxPython的版本最高是2.18.12,用pip下载的wxPython版本是4.10,而且我在那个路径下没有找到2
真的太好了,太感谢了,在bilibili和CSDN上都找遍了,终于在你这里找到了
看到下面的链接了,不用了。