bs4.BeautifulSoup
urllib.request.urlopen
在多次添加pip的path到系统变量里面仍然显示pip不是系统的指定命令后,在重装python后,并且将script地址加入path后,打开cmd输入pip终于显示出
Usage:
pip [options]
(pip环境安装好成功的标志)
(1)根据py代码的简单化准则,我将爬取整个网站的代码,分离成通过循环爬取各网页代码,网址是这样的:http://acg17.com/category/meitu/pixiv-painter/page/1/
很容易发现可以通过page后面的数字遍历于是
让url =
“http://acg17.com/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
pic是网站中遍历的网页中的具体文章,里面有很多a标签,但是pic.a的输出只有一个,百度了很久也没有找到原因,路过的大佬帮我看看吧。
代码如下(示例):
from urllib.request import urlopen
from bs4 import BeautifulSoup
def worm(temp):
cards = []
url = "http://acg17.com/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':
break
elif photo.img['src'][-3:] == 'gif':
pass
else:
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("所有的本子都爬好了哦 得意 <( ̄︶ ̄)>")
代码如下(示例):
def worm(temp):
cards = []
url = "http://acg17.com/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':
break
elif photo.img['src'][-3:] == 'gif':
pass
else:
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("所有的本子都爬好了哦 得意 <( ̄︶ ̄)>")
# 总结
爬虫的学习重在兴趣和使用,目前写的爬虫只能针对网站进行编写,换个网站就不行了,并且爬到本子的网址形式后没有进行进一步的下载操作。