python爬取贴吧图片代码
时间: 2024-11-03 18:23:15 浏览: 13
在Python中,爬取贴吧图片通常会利用requests库获取网页内容,然后解析HTML结构找到图片URL,最后使用BeautifulSoup或其他类似库进行解析。这里是一个简单的例子:
```python
import requests
from bs4 import BeautifulSoup
# 定义目标网址
url = "https://tieba.baidu.com/p/XXXXX" # 把XXXXX替换为你想爬取的具体帖子链接
# 发送请求
response = requests.get(url)
# 解析HTML
soup = BeautifulSoup(response.text, 'lxml')
# 找到img标签并提取src属性(图片链接)
images = soup.find_all('img', src=True) # 注意这里的True表示只找有src属性的img标签
# 存储图片链接
image_urls = [img['src'] for img in images]
# 下载图片
for url in image_urls:
response = requests.get(url)
filename = url.split("/")[-1] # 获取文件名
with open(filename, 'wb') as f:
f.write(response.content)
相关问题
Python爬取百度贴吧图片
在Python中,使用第三方库如`requests`、`BeautifulSoup`和`PIL`(或者`io`模块用于处理二进制数据)可以爬取百度贴吧的图片。以下是一个简单的步骤概述:
1. **导入必要的库**:
```python
import requests
from bs4 import BeautifulSoup
import io
```
2. **发送请求获取网页内容**:
```python
url = "http://tieba.baidu.com/p/XXXXX" # 把XXXXX替换为你要抓取的帖子链接
headers = {'User-Agent': 'Mozilla/5.0'} # 设置合适的User-Agent以避免被识别为机器人
response = requests.get(url, headers=headers)
```
3. **解析HTML提取图片信息**:
```python
soup = BeautifulSoup(response.text, 'html.parser')
img_tags = soup.find_all('img') # 找到所有的图片标签
```
4. **下载并保存图片**:
```python
for img in img_tags:
img_url = img['src'] # 提取图片URL
if img_url.startswith('//'):
img_url = 'http:' + img_url # 添加'http://'如果缺少
try:
response_img = requests.get(img_url, stream=True)
with open(f"{url.split('/')[-1].split('.')[0]}_{i}.jpg", 'wb') as f: # 保存图片文件
f.write(response_img.content)
except Exception as e:
print(f"Error downloading image: {e}")
```
注意:
- 这个过程可能会因为网站结构变化或反爬机制而失效,需要定期更新代码适应变化。
- 爬虫操作需遵守网站的robots.txt协议,并尊重版权。
python爬虫爬取贴吧图片
Python爬虫可以用来爬取贴吧图片。通过使用urllib库和re库,可以获取贴吧页面的HTML代码,并从中提取出图片链接。然后使用urllib库中的urlretrieve方法将图片下载到本地。下面是一个简单的Python爬虫代码示例,可以爬取指定贴吧页面的所有图片:
```
# coding:utf-8
import urllib
import re
def get_html(url):
page = urllib.request.urlopen(url)
html = page.read()
return html
def get_image(html_code):
reg = r'src="(.+?\.jpg)" width'
reg_img = re.compile(reg)
imglist = reg_img.findall(html_code.decode('utf-8'))
x = 0
for img in imglist:
urllib.request.urlretrieve(img, '%s.jpg' %x)
x += 1
print(u'-------网页图片抓取-------')
print(u'请输入url:')
url = input()
if url:
pass
else:
print(u'---没有地址输入正在使用默认地址---')
url = 'http://tieba.baidu.com/p/1753935195'
print(u'----------正在获取网页---------')
html_code = get_html(url)
print(u'----------正在下载图片---------')
get_image(html_code)
print(u'-----------下载成功-----------')
input('Press Enter to exit')
```
阅读全文