以下是详细讲解“10个Python爬虫入门基础代码实例+1个简单的Python爬虫完整实例”的完整攻略。
10个Python爬虫入门基础代码实例
- 爬取网页内容
import requests
url = "https://www.example.com"
response = requests.get(url)
print(response.text)
在上面的代码中,我们使用requests库发送GET请求,获取网页内容。最后,我们输出网页内容。
- 解析HTML内容
import requests
from bs4 import BeautifulSoup
url = "https://www.example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
print(soup.title.string)
在上面的代码中,我们使用requests库发送GET请求,获取网页内容。然后,我们使用BeautifulSoup库解析HTML内容,获取网页标题。最后,我们输出网页标题。
- 爬取图片
import requests
url = "https://www.example.com/image.jpg"
response = requests.get(url)
with open("image.jpg", "wb") as f:
f.write(response.content)
在上面的代码中,我们使用requests库发送GET请求,获取图片内容。然后,我们使用with open()语句将图片内容写入本地文件。最后,我们保存图片。
- 爬取JSON数据
import requests
url = "https://www.example.com/data.json"
response = requests.get(url)
data = response.json()
print(data)
在上面的代码中,我们使用requests库发送GET请求,获取JSON数据。然后,我们使用response.json()方法将JSON数据转换为Python对象。最后,我们输出Python对象。
- 爬取XML数据
import requests
import xml.etree.ElementTree as ET
url = "https://www.example.com/data.xml"
response = requests.get(url)
root = ET.fromstring(response.content)
for child in root:
print(child.tag, child.attrib)
在上面的代码中,我们使用requests库发送GET请求,获取XML数据。然后,我们使用xml.etree.ElementTree库解析XML数据,获取XML元素。最后,我们输出XML元素。
- 使用正则达式匹配内容
import re
text = "Hello 123 World"
pattern = "\d+"
result = re.findall(pattern, text)
print(result)
在上面的代码中,我们使用re.findall()函数进行字符串匹配。我们使用正则表达式\d+
,表示匹配数字。最后,我们输出匹配结果。
- 使用XPath匹配内容
import requests
from lxml import etree
url = "https://www.example.com"
response = requests.get(url)
html = etree.HTML(response.text)
result = html.xpath("//title/text()")
print(result)
在上面的代码中,我们使用requests库发送GET请求,获取HTML内容。然后,我们使用lxml库解析HTML内容,使用XPath表达式获取网页标题。最后,我们输出网页标题。
- 使用Selenium模拟浏览器操作
from selenium import webdriver
url = "https://www.example.com"
driver = webdriver.Chrome()
driver.get(url)
print(driver.title)
driver.quit()
在上面的代码中,我们使用Selenium库模拟Chrome浏览器操作,打开网页并获取网页标题。最后,我们输出网页标题,并关闭浏览器。
- 使用Scrapy框架爬取网页
import scrapy
class ExampleSpider(scrapy.Spider):
name = "example"
start_urls = [
"https://www.example.com",
]
def parse(self, response):
title = response.css("title::text").get()
yield {
"title": title,
}
在上面的代码中,我们使用Scrapy框架定义一个爬虫,爬取网页标题。我们使用response.css()方法获取网页标题,使用yield语句输出结果。
- 使用BeautifulSoup和Pandas处理数据
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "https://www.example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
table = soup.find("table")
df = pd.read_html(str(table))[0]
print(df)
在上面的代码中,我们使用requests库发送GET请求,获取HTML内容。然后,我们使用BeautifulSoup库解析HTML内容,获取网页表格。最后,我们使用Pandas库将表格转换为DataFrame对象,并输出结果。
简单的Python爬虫完整实例
下面是一个简单的Python爬虫完整实例,演示如何爬取豆瓣电影Top250的电影名称和评分:
import requests
from bs4 import BeautifulSoup
url = "https://movie.douban.com/top250"
movies = []
for i in range(0, 250, 25):
params = {
"start": str(i),
"filter": "",
}
response = requests.get(url, params=params)
soup = BeautifulSoup(response.text, "html.parser")
items = soup.find_all("div", class_="hd")
for item in items:
title = item.a.span.text
rating = item.parent.find("span", class_="rating_num").text
movies.append((title, rating))
for movie in movies:
print(movie[0], movie[1])
在上面的代码中,我们使用requests库发送GET请求,获取豆瓣电影Top250的HTML内容。然后,我们使用BeautifulSoup库解析HTML内容,获取电影名称和评分。最后,我们输出电影名称和评分。
注意事项
在使用Python爬虫时,需要注意以下事项:
- 在爬取网页时,需要遵守网站的爬虫规则,避免对网站造成不必要的影响。
- 在解析HTML内容时,需要HTML标签的结构和属性,避免出现解析错误。
- 在爬取数据时,需要注意数据的格式和类型,避免出现错误。
以上是10个Python爬虫入门基础代码实例+1个简单的Python爬虫完整实例的完整攻略,包括示例说明和注意事项。在实际应用中,我们可以根据需要灵活运用Python爬虫技术,提高数据获取和处理的效率和可靠性。