生成一个Python爬取图片的代码
时间: 2023-03-15 15:59:57 浏览: 92
可以这样写:import requests
from bs4 import BeautifulSoupurl = "https://example.com/images"# 获取页面内容
response = requests.get(url)
data = response.text# 使用BeautifulSoup解析页面
soup = BeautifulSoup(data, 'lxml')# 找到所有img标签
img_tags = soup.find_all('img')# 找到图片的URL
urls = [img['src'] for img in img_tags]# 下载图片
for url in urls:
response = requests.get(url)
file_name = url.split('/')[-1]
with open(file_name, 'wb') as f:
f.write(response.content)
相关问题
python爬取图片程序
你可以使用Python的requests库和BeautifulSoup库来编写一个简单的图片爬取程序。以下是一个示例:
```python
import requests
from bs4 import BeautifulSoup
import os
# 创建保存图片的文件夹
save_folder = 'images'
if not os.path.exists(save_folder):
os.makedirs(save_folder)
# 要爬取图片的网页链接
url = 'https://example.com'
# 发起请求并获取网页内容
response = requests.get(url)
html = response.text
# 使用BeautifulSoup解析网页内容
soup = BeautifulSoup(html, 'html.parser')
# 找到所有的图片标签
img_tags = soup.find_all('img')
# 遍历图片标签,下载图片并保存到本地
for img_tag in img_tags:
# 获取图片链接
img_url = img_tag['src']
# 发起请求并获取图片内容
img_response = requests.get(img_url)
# 生成图片保存路径
img_name = img_url.split('/')[-1]
save_path = os.path.join(save_folder, img_name)
# 保存图片到本地
with open(save_path, 'wb') as f:
f.write(img_response.content)
print(f"已保存图片:{save_path}")
```
请注意,上述代码中的`url`变量是要爬取图片的网页链接,你需要将其替换为你要爬取的实际网页链接。另外,代码中会创建一个名为`images`的文件夹来保存下载的图片,你可以根据需要修改保存路径。
在运行代码之前,请确保你已经安装了所需的依赖库(requests和BeautifulSoup),你可以使用`pip install requests`和`pip install beautifulsoup4`命令来安装它们。
python爬取微博关键词代码
以下是Python爬取微博关键词的代码示例:
```python
import requests
from bs4 import BeautifulSoup
import jieba
from wordcloud import WordCloud
# 设置请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 获取搜索结果页面
def get_page(keyword, page):
url = 'https://s.weibo.com/weibo?q=' + keyword + '&page=' + str(page)
response = requests.get(url, headers=headers)
return response.text
# 解析搜索结果页面,获取微博内容
def get_content(html):
soup = BeautifulSoup(html, 'html.parser')
content_list = soup.find_all('p', class_='txt')
content = ''
for item in content_list:
content += item.text.strip()
return content
# 对微博内容进行分词
def cut_words(content):
word_list = jieba.cut(content)
words = ' '.join(word_list)
return words
# 生成词云图片
def generate_wordcloud(words):
wc = WordCloud(background_color='white', width=800, height=600, max_words=200, font_path='msyh.ttc')
wc.generate(words)
wc.to_file('wordcloud.png')
# 主函数
def main():
keyword = input('请输入要搜索的关键词:')
page = int(input('请输入要搜索的页数:'))
content = ''
for i in range(1, page+1):
html = get_page(keyword, i)
content += get_content(html)
words = cut_words(content)
generate_wordcloud(words)
if __name__ == '__main__':
main()
```
以上代码可以实现输入关键词和页数,然后爬取对应页数的微博内容,对内容进行分词并生成词云图片。需要注意的是,爬取微博数据需要登录账号并获取cookie,否则会被反爬虫机制拦截。
阅读全文