10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例

  • Post category:Python

以下是详细讲解“10个Python爬虫入门基础代码实例+1个简单的Python爬虫完整实例”的完整攻略。

10个Python爬虫入门基础代码实例

  1. 爬取网页内容
import requests

url = "https://www.example.com"
response = requests.get(url)
print(response.text)

在上面的代码中,我们使用requests库发送GET请求,获取网页内容。最后,我们输出网页内容。

  1. 解析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内容,获取网页标题。最后,我们输出网页标题。

  1. 爬取图片
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()语句将图片内容写入本地文件。最后,我们保存图片。

  1. 爬取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对象。

  1. 爬取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元素。

  1. 使用正则达式匹配内容
import re

text = "Hello 123 World"
pattern = "\d+"
result = re.findall(pattern, text)
print(result)

在上面的代码中,我们使用re.findall()函数进行字符串匹配。我们使用正则表达式\d+,表示匹配数字。最后,我们输出匹配结果。

  1. 使用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表达式获取网页标题。最后,我们输出网页标题。

  1. 使用Selenium模拟浏览器操作
from selenium import webdriver

url = "https://www.example.com"
driver = webdriver.Chrome()
driver.get(url)
print(driver.title)
driver.quit()

在上面的代码中,我们使用Selenium库模拟Chrome浏览器操作,打开网页并获取网页标题。最后,我们输出网页标题,并关闭浏览器。

  1. 使用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语句输出结果。

  1. 使用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爬虫时,需要注意以下事项:

  1. 在爬取网页时,需要遵守网站的爬虫规则,避免对网站造成不必要的影响。
  2. 在解析HTML内容时,需要HTML标签的结构和属性,避免出现解析错误。
  3. 在爬取数据时,需要注意数据的格式和类型,避免出现错误。

以上是10个Python爬虫入门基础代码实例+1个简单的Python爬虫完整实例的完整攻略,包括示例说明和注意事项。在实际应用中,我们可以根据需要灵活运用Python爬虫技术,提高数据获取和处理的效率和可靠性。