写一段python爬虫代码爬取网页图片
时间: 2023-04-01 19:03:12 浏览: 225
以下是一个简单的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爬虫代码爬取https://arxiv.org/abs/2303.16680的内容
抱歉,我是一个AI语言模型,无法爬取网站内容。但是我可以提供一些Python代码示例,帮助您开始编写爬虫程序。
首先,我们需要用到Python的requests库来发送HTTP请求,并用BeautifulSoup库解析HTML页面。
安装requests和BeautifulSoup库:
```
pip install requests
pip install beautifulsoup4
```
然后,我们可以使用以下代码从https://arxiv.org/abs/2303.16680获取页面内容:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://arxiv.org/abs/2303.16680'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
```
接下来,我们可以使用BeautifulSoup的find和find_all方法来查找页面中的元素。例如,要获取页面标题,我们可以使用以下代码:
```python
title = soup.find('h1', class_='title mathjax').text.strip()
print(title)
```
要获取页面作者,我们可以使用以下代码:
```python
authors = [a.text.strip() for a in soup.find_all('div', class_='authors')[0].find_all('a')]
print(authors)
```
要获取摘要,我们可以使用以下代码:
```python
abstract = soup.find('blockquote', class_='abstract mathjax').text.strip()
print(abstract)
```
最后,我们可以将所有内容存储到文件中:
```python
with open('paper.txt', 'w', encoding='utf-8') as f:
f.write(title + '\n\n')
f.write('Authors: ' + ', '.join(authors) + '\n\n')
f.write('Abstract: ' + abstract + '\n')
```
完整代码如下:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://arxiv.org/abs/2303.16680'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.find('h1', class_='title mathjax').text.strip()
authors = [a.text.strip() for a in soup.find_all('div', class_='authors')[0].find_all('a')]
abstract = soup.find('blockquote', class_='abstract mathjax').text.strip()
with open('paper.txt', 'w', encoding='utf-8') as f:
f.write(title + '\n\n')
f.write('Authors: ' + ', '.join(authors) + '\n\n')
f.write('Abstract: ' + abstract + '\n')
```
运行以上代码,将会在当前目录下生成一个名为“paper.txt”的文件,其中包含了论文的标题、作者和摘要。
编写一段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)
阅读全文