Python百行不到爬取当当网的图片以及标题导入数据库
程序员文章站
2023-12-27 16:04:33
...
前言
最近写了一个JavaWeb项目,一个图书借阅系统,他要求插入大量的数据,正好之前看到GitHub上面一个人写完JavaWeb商城之后爬取了京东的图片插入数据库,我今天也来自己实现一下。
准备环境
- Python 3.x
- PyCharm
Python可以直接去官方下,然后PyCharm是Python的编译器,具体的**也可以去很多公众号上面查询;
Python中有很多的爬虫包,这里我们选用的是 requests 与 BeautifulSoup库,安装的话可以使用命令行 pip 安装
开始爬虫
# 这是当当的搜索路径,keyword代表搜索的关键词,后面的page_index是页码
url = 'http://search.dangdang.com/?key=' + keyword + '&act=input&page_index='
然后我们指定图片的存储路径
save_path = 'F:\\项目\\bookManagerImg\\'
同时我们为了防止爬虫被拦截,我们将其添加一个请求头来越过拦截
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 '
'Safari/537.36',
}
然后就是进行模板操作
resp = requests.get(url, headers=header)
soup = BeautifulSoup(resp.text, 'lxml')
data = soup.find_all('img')
for img in data:
if 'data-original' in img.attrs:
num += 1
img_path = img.attrs['data-original']
if not os.path.exists(save_path):
os.makedirs(save_path)
file_suffix = os.path.splitext(img_path)[1]
# 获取图书名字
book_name = str(img['alt'])
book_name = book_name.replace(" ", "")
# 定义文件名
filename = save_path + str(book_num) + file_suffix
print("文件名:" + filename)
# 文件操作
r = requests.get(img_path)
with open(filename, 'wb') as f:
f.write(r.content)
print('下载完成')
今天有点累,就先水一篇博客吧。