爬取百度贴吧的帖子图片
本帖最后由 沉迷include 于 2019-1-16 21:56 编辑爬取百度贴吧的帖子图片
例如:美女吧
『每周一星』第一百四十期 的帖子内全部图片
**** Hidden Message *****
--------------------------------------------------------
回复可见源码
? 围观 顶起
有问题的确定能爬完好像只爬了60张图片就没了~~
zhuangyao 发表于 2019-1-10 16:27
有问题的确定能爬完好像只爬了60张图片就没了~~
有报错误吗?发给我一下,看看 沉迷include 发表于 2019-1-10 18:27
有报错误吗?发给我一下,看看
报错倒没有 就是下载了好几页每页大概60张图片去文件夹 看结果只有60张左右不应该是每页全部图片吗 爬取百度贴吧的帖子图片 zhuangyao 发表于 2019-1-11 08:57
报错倒没有 就是下载了好几页每页大概60张图片去文件夹 看结果只有60张左右不应该是每页全部图 ...
啊哈哈哈哈……可能不小心手抖删了
html = url_open(url)
这句改成
html = url_open(urls) 6666666666 1 网络爬虫嘛 123 1 学习 看看 学习 请输入贴吧帖子网址:https://tieba.baidu.com/index.html
Traceback (most recent call last):
File "E:/python37/Lxp01/download_mmlx4.py", line 53, in <module>
main()
File "E:/python37/Lxp01/download_mmlx4.py", line 48, in main
get_img(url)
File "E:/python37/Lxp01/download_mmlx4.py", line 26, in get_img
for i in range(1,page_num(url)):
File "E:/python37/Lxp01/download_mmlx4.py", line 21, in page_num
return int(num)
IndexError: list index out of range import urllib.request
import re
import os
def url_open(url):
req = urllib.request.Request(url)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6815.400 QQBrowser/10.3.3006.400')
response = urllib.request.urlopen(req)
html = response.read()
return html
def save_imgs(folder,img_addrs):
for each in img_addrs:
filename = each.split('/')[-1]
with open(filename,'wb') as f:
img = url_open(each)
f.write(img)
def get_page(url):
html = url_open(url).decode('utf-8')
img_addrs = []
reg = r'data-original="(.*?)".*?alt="(.*?)"'
reg = re.compile(reg,re.S)
imgs = re.findall(reg,html)
for im in imgs:
img_addrs.append(im)
return img_addrs
def download_mm(folder='ooxx11',pages=2):
os.mkdir(folder)
os.chdir(folder)
urL='https://www.doutula.com/article/list/?page={}'
for i in range(pages):
page_url = urL.format(i)
img_addrs = get_page(page_url)
save_imgs(folder,img_addrs)
if __name__ == '__main__':
download_mm()
我这个代码也是爬取图片,运行OK,只是还有点问题,与大家讨论一下 围观中。。。 试试