爬了一页图,很顺利。最最基础的,这网页没加密,重命名保存。
#coding:utf-8
import urllib.request
import re
import os
import urllib
def getHtml(url):
page = urllib.request.urlopen(url)
html = page.read()
return html.decode('UTF-8')
#https://imgsa.baidu.com/forum/w%3D580/sign=3b5751825882b2b7a79f39cc01accb0a/9ac37d1ed21b0ef481c651d8dcc451da81cb3e0f.jpg
def getImg(html):
reg = r'src="(.+?\.jpg)" alt'
imgre = re.compile(reg)
imglist = imgre.findall(html)
x = 0
path = 'D:\\test'
if not os.path.isdir(path):
os.makedirs(path)
paths = path+'\\' #?????est·???
for imgurl in imglist:
urllib.request.urlretrieve(imgurl,'D:\\test\\%s.jpg' % x) #
x = x + 1
return imglist
html = getHtml("http://www.xmeim.com/photos/TouTiao-191200.html")
print (getImg(html))
爬虫翻页问题
爬虫翻页应该是没有通用的翻页方法的,一般都需要靠分析页面结构来获取下一页的请求链接或者分析URL链接的规律来进行翻页的。
据我所知前嗅有一款软件叫ForeSpider就是支持翻页效果的。webmagic国内开源的就可以.
用正则,然后入库。 列表获取链接和title,然后根据抓取链接获取文章页的内容。总共有多少页,循环多少次。
开源中国的问答。不过我现在是练习,不用新工具了。
page = 1
while page<5:
url = 'http://www.qiushibaike.com/hot/page/'+str(page+1)
page=page+1
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
我加了个循环但是还是不行,无法抓取
两种思路:
A。root_url→urls→每一页的img_url→爬取
B。root_url→root_urls→全部的img_url→爬取
弄了个for if结果只实现了爬取两页。愤。暂时搁置。
初学还是弄成功案例吧