python使用bs4爬取网页所有资源
时间: 2023-09-20 12:09:23 浏览: 109
以下是使用Python的BeautifulSoup库(bs4)爬取网页所有资源的代码示例:
```python
import urllib.request
from bs4 import BeautifulSoup
url = "https://example.com" # 替换为你要爬取的网页链接
html_page = urllib.request.urlopen(url)
soup = BeautifulSoup(html_page)
for link in soup.findAll('a'):
print(link.get('href')) # 输出所有链接
for img in soup.findAll('img'):
print(img.get('src')) # 输出所有图片链接
for script in soup.findAll('script'):
print(script.get('src')) # 输出所有脚本链接
for css in soup.findAll('link'):
if css.get('type') == 'text/css':
print(css.get('href')) # 输出所有样式链接
```
这个示例代码可以爬取网页中所有的链接、图片、脚本和样式表链接。你可以根据需要修改代码,比如将资源链接保存到文件中等等。
相关问题
python爬虫动态网页爬取
Python爬虫可以使用Selenium和BeautifulSoup结合的方式来爬取动态网页。
1. 安装Selenium和BeautifulSoup库:
```
pip install selenium
pip install beautifulsoup4
```
2. 下载浏览器驱动,例如Chrome驱动,并将其添加到环境变量中。
3. 使用Selenium模拟浏览器打开网页并获取动态内容:
```python
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com")
dynamic_content = driver.find_element_by_id("dynamic-content").text
driver.quit()
```
4. 使用BeautifulSoup解析动态内容:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(dynamic_content, 'html.parser')
# 进行数据提取
```
注意事项:
- 爬取动态网页需要模拟浏览器行为,因此速度可能比静态网页慢。
- 爬取动态网页需要耗费较多的系统资源,因此需要注意内存和CPU的使用情况。
- 爬取动态网页需要处理浏览器弹窗、验证码等问题,需要使用Selenium提供的方法进行处理。
用python写一个爬取影视资源的完整代码
以下一个基本的Python爬取影视资源的代码示例,但请注意不要侵犯版权:
```python
import requests
from bs4 import BeautifulSoup
# 爬取的链接
url = "http://www.example.com/movies"
# 发送请求
r = requests.get(url)
# 使用BeautifulSoup解析网页
soup = BeautifulSoup(r.content, 'html.parser')
# 搜索所有的电影链接
movie_links = soup.find_all('a', class_='movie-link')
# 遍历所有电影链接并获取相应信息
for link in movie_links:
# 获取电影名称和链接
movie_name = link.text.strip()
movie_url = link['href']
# 发送电影详情页面的请求
movie_r = requests.get(movie_url)
movie_soup = BeautifulSoup(movie_r.content, 'html.parser')
# 获取电影详情信息
movie_description = movie_soup.find('div', class_='description').text.strip()
movie_image_url = movie_soup.find('img')['src']
# 将电影信息存储到文件中或者数据库中
with open('movies.txt', 'a') as f:
f.write(f'{movie_name}\n{movie_description}\n{movie_image_url}\n\n')
```
请注意,这只是一个基本的示例,实际情况可能更复杂。此外,网站所有者可能会采取反爬虫措施,因此请确保您的爬虫行为合法。
阅读全文