写一段python爬虫代码爬取网页图片
时间: 2023-04-01 15:03:12 浏览: 222
以下是一个简单的Python爬虫代码,可以爬取指定网页的图片并将其保存到本地:
```python
import requests
from bs4 import BeautifulSoup
import os
url = 'https://example.com' # 指定要爬取的网页
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
# 查找所有图片标签
img_tags = soup.find_all('img')
# 遍历所有图片标签,下载图片并保存到本地
for img_tag in img_tags:
img_url = img_tag.get('src')
img_name = img_url.split('/')[-1] # 图片名称为url中最后一个斜杠后的字符串
img_path = os.path.join('./images', img_name) # 保存到当前目录下的images文件夹中
img_res = requests.get(img_url)
with open(img_path, 'wb') as f:
f.write(img_res.content)
print(f'Saved {img_name} successfully.')
```
请注意,此代码仅供参考,实际使用时需要根据具体情况进行修改和优化。同时,爬取网页内容可能涉及法律风险,请谨慎使用。
相关问题
编写一段python爬虫代码爬取微博内容
编写Python爬虫抓取微博内容通常涉及使用第三方库如`requests`获取网页HTML,然后利用如BeautifulSoup或lxml解析HTML提取所需信息。以下是一个简化的例子,假设我们使用了`selenium`和`webdriver_manager`库来模拟浏览器访问,因为微博有反爬机制:
```python
from selenium import webdriver
from bs4 import BeautifulSoup
import time
# 安装并导入webdriver_manager
from webdriver_manager.chrome import ChromeDriverManager
def get_weibo_content(url):
# 初始化Chrome浏览器
driver = webdriver.Chrome(ChromeDriverManager().install())
try:
# 访问微博页面
driver.get(url)
time.sleep(3) # 等待页面加载完成
# 获取页面源代码
page_source = driver.page_source
soup = BeautifulSoup(page_source, 'html.parser')
# 找到包含微博内容的部分,这里假设是class为'msg-con'
content_divs = soup.find_all('div', class_='msg-con')
for div in content_divs:
text = div.get_text() # 提取文本
print(text)
except Exception as e:
print(f"遇到错误: {e}")
finally:
# 关闭浏览器
driver.quit()
# 使用你要爬取的微博URL
url = "https://weibo.com/xxxxxx"
get_weibo_content(url)
用python写一段网页爬虫代码 爬取电影
以下是一个简单的 Python 代码片段,可以爬取电影网站的电影信息:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://www.imdb.com/chart/top'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.select('td.titleColumn')
crew = [a.attrs.get('title') for a in soup.select('td.titleColumn a')]
ratings = [b.attrs.get('data-value') for b in soup.select('td.posterColumn span[name="ir"]')]
for i in range(0, len(movies)):
print(f"{i+1}. {movies[i].text.strip()} ({crew[i]}) - Rating: {ratings[i]}")
```
这个代码片段使用 requests 库发送 HTTP 请求并获取网页内容,然后使用 BeautifulSoup 库解析 HTML 代码。它从 IMDb 网站中获取了电影的标题、演职人员和评级,并将它们打印在控制台中。你可以根据需要进行修改和优化。
阅读全文