Crossin的编程教室
标题:
爬取图片出现的问题
[打印本页]
作者:
noobbull
时间:
2019-4-11 01:23
标题:
爬取图片出现的问题
最近刚学习爬虫, 小白想请教crossin老师和大家, 为什么不能获取图片,
python 3.7 url :
https://tieba.baidu.com/f?kw=%E5%A5%B3%E7%A5%9E&ie=utf-8&pn=0
import os
import requests
from bs4 import BeautifulSoup as bs
def url_open(url):
headers = {}
headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
r = requests.get(url, headers = headers).text
soup = bs(r, 'lxml')
return soup
def img_download(img_url, file = './nv_shen'):
filename = img_url.split('/')[-1]
img_content = requests.get(img_url)
with open(filename, 'wb') as f:
f.write(img_content.content)
def download_nvshen(s, file = './nv_shen'):
os.makedirs(file, exist_ok = True)
os.chdir(file)
links = []
for i in range(s):
endw = str(50*i)
link = "https://tieba.baidu.com/f?kw=%E5%A5%B3%E7%A5%9E&ie=utf-8&pn="+ endw
links.append(link)
#print(links)
for link in links:
content = url_open(link)
#print(content)
img_classes = content.find_all('div', class_= 'media_box j_remove j_media_box')
# 问题出在这里 img_classes是个空列表, 请问为什么
for img_class in img_classes:
imgs = img_class.find_all('img', class_= 'j_retract')
for img in imgs:
img_url = img['src']
img_download(img_url, file)
s = int(input('print a number: '))
download_nvshen(s)
作者:
crossin先生
时间:
2019-4-11 22:36
#print(content)
把你这里输出的content复制到文本编辑器搜索一下你要的内容
1. 没有你要的内容,那是抓取部分的问题,数据就没有拿过来
1.1 看看是不是权限问题,被反爬了。是的话增加headers信息
1.2 页面其他信息正常,就是缺少数据。那重新去分析页面请求,看看是不是数据在其他请求里
2.有你要的内容,但是没被bs提取出来。那就是提取规则的问题,仔细修改一下,总能弄出来的
作者:
yiniuyun0
时间:
2019-5-14 18:01
棒棒哒
欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/)
Powered by Discuz! X2.5