700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 写个爬虫爬取p站画师的画作

写个爬虫爬取p站画师的画作

时间:2019-07-09 19:54:57

相关推荐

写个爬虫爬取p站画师的画作

写个爬虫爬取一个p站画师的画作

一、爬虫所用的库是什么?二、爬虫中出现的问题?1.python爬虫使用的库的下载2.编程中出现的问题和解决2.编程未解决的问题 三、使用步骤1.函数2.读入数据

一、爬虫所用的库是什么?

bs4.BeautifulSoup

urllib.request.urlopen

二、爬虫中出现的问题?

1.python爬虫使用的库的下载

在多次添加pip的path到系统变量里面仍然显示pip不是系统的指定命令后,在重装python后,并且将script地址加入path后,打开cmd输入pip终于显示出

Usage:

pip [options]

(pip环境安装好成功的标志)

2.编程中出现的问题和解决

(1)根据py代码的简单化准则,我将爬取整个网站的代码,分离成通过循环爬取各网页代码,网址是这样的:/category/meitu/pixiv-painter/page/1/

很容易发现可以通过page后面的数字遍历于是

让url =

“/category/meitu/pixiv-painter/page/{:d}/”.format(temp)

(2)然后网页里面又有很多文章通过检查发现这些文章都在标签article里面那么可以用findall函数选择出标签article

(3)通过以上操作爬到了html的网址,也就是放我需要的图片的具体网页,发现图片的标签是p.img[‘src’],但是在这个标签下的还有一些logo和精灵图等必须要的文件,通过检查发现他们的第24位到28位是large,这里就可以用if语句分开

if p.img[‘src’][24] == l:

break

2.编程未解决的问题

pic是网站中遍历的网页中的具体文章,里面有很多a标签,但是pic.a的输出只有一个,百度了很久也没有找到原因,路过的大佬帮我看看吧。

三、使用步骤

1.函数

代码如下(示例):

from urllib.request import urlopenfrom bs4 import BeautifulSoupdef worm(temp):cards = []url = "/category/meitu/pixiv-painter/page/{:d}/".format(temp)html = urlopen(url)bsObj = BeautifulSoup(html.read(), features='html.parser')for pic in bsObj.findAll('article'):url2 = pic.a['href']html2 = urlopen(url2)bsObj2 = BeautifulSoup(html2.read(), features='html.parser')for photo in bsObj2.findAll('p'):if photo.img != None:if photo.img['src'][24] == 'l':breakelif photo.img['src'][-3:] == 'gif':passelse:cards.append(photo.img['src'])for card in cards:print(card)for i in range(10, 20):print("这是第{:d}页的本子 (*∩_∩*)′ 献上 ".format(i))worm(i)print("\n")print("所有的本子都爬好了哦 得意 <( ̄︶ ̄)>")

2.读入数据

代码如下(示例):

def worm(temp):cards = []url = "/category/meitu/pixiv-painter/page/{:d}/".format(temp)html = urlopen(url)bsObj = BeautifulSoup(html.read(), features='html.parser')for pic in bsObj.findAll('article'):url2 = pic.a['href']html2 = urlopen(url2)bsObj2 = BeautifulSoup(html2.read(), features='html.parser')for photo in bsObj2.findAll('p'):if photo.img != None:if photo.img['src'][24] == 'l':breakelif photo.img['src'][-3:] == 'gif':passelse:cards.append(photo.img['src'])for card in cards:print(card)for i in range(10, 20):print("这是第{:d}页的本子 (*∩_∩*)′ 献上 ".format(i))worm(i)print("\n")print("所有的本子都爬好了哦 得意 <( ̄︶ ̄)>")# 总结爬虫的学习重在兴趣和使用,目前写的爬虫只能针对网站进行编写,换个网站就不行了,并且爬到本子的网址形式后没有进行进一步的下载操作。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。