在 Python 中爬取网页数据,通常分为发送请求 → 解析页面 → 提取数据 → 存储/使用几个步骤。下面从基础到进阶给你一个清晰指南。
pip install requests beautifulsoup4
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
soup = BeautifulSoup(response.text, "html.parser")
# 获取标题
title = soup.title.string
print("标题:", title)
# 获取所有段落
for p in soup.find_all("p"):
print(p.get_text())
else:
print("请求失败:", response.status_code)
soup.find("div", class_="content") # 找第一个
soup.find_all("a", href=True) # 找所有链接
soup.select("div > p.title") # CSS 选择器
如果网页内容是用 JS 动态加载的(右键查看源代码找不到数据),需要用:
resp = requests.get("https://api.example.com/data")
data = resp.json()
pip install selenium
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com")
print(driver.page_source)
driver.quit()
headers = {
"User-Agent": "Mozilla/5.0"
}
requests.get(url, headers=headers)
import time
time.sleep(1)
proxies = {
"http": "http://ip:port"
}
requests.get(url, proxies=proxies)
import csv
with open("data.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow(["标题"])
writer.writerow([title])
robots.txt如果你有具体网站或想爬的内容(如新闻、图片、表格、评论),可以告诉我,我可以直接给你可用代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。