在这篇文章中,我们将分享7个Python爬虫的小案例,帮助大家更好地学习和了解Python爬虫的基础知识。以下是每个案例的简介和源代码:

1. 爬取豆瓣电影Top250

这个案例使用BeautifulSoup库爬取豆瓣电影Top250的电影名称、评分和评价人数等信息,并将这些信息保存到CSV文件中。

import requests

from bs4 import BeautifulSoup

import csv

# 请求URL

url = ''

# 请求头部

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.36'

}

# 解析页面函数

def parse_html(html):

soup = BeautifulSoup(html, 'lxml')

movie_list = soup.find('ol', class_='grid_view').find_all('li')

for movie in movie_list:

title = movie.find('div', class_='hd').find('span', class_='title').get_text()

rating_num = movie.find('div', class_='star').find('span', class_='rating_num').get_text()

comment_num = movie.find('div', class_='star').find_all('span')[-1].get_text()

writer.writerow([title, rating_num, comment_num])

# 保存数据函数

def save_data():

f = open('douban_movie_top250.csv', 'a', newline='', encoding='utf-8-sig')

global writer

writer = csv.writer(f)

writer.writerow(['电影名称', '评分', '评价人数'])

for i in range(10):

url = '' + str(i*25) + '&filter='

response = requests.get(url, headers=headers)

parse_html(response.text)

f.close()

if __name__ == '__main__':

save_data()

2. 爬取猫眼电影Top100

这个案例使用正则表达式和requests库爬取猫眼电影Top100的电影名称、主演和上映时间等信息,并将这些信息保存到TXT文件中。

import requests

import re

# 请求URL

url = ''

# 请求头部

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.36'

}

# 解析页面函数

def parse_html(html):

pattern = re.compile('

(.*?)

.*?

(.*?)

.*?

(.*?)

', re.S)

items = re.findall(pattern, html)

for item in items:

yield {

'电影名称': item[1],

'主演': item[2].strip(),

'上映时间': item[3]

}

# 保存数据函数

def save_data():

f = open('maoyan_top100.txt', 'w', encoding='utf-8')

for i in range(10):

url = '' + str(i*10)

response = requests.get(url, headers=headers)

for item in parse_html(response.text):

f.write(str(item) + '\\\\n')

f.close()

if __name__ == '__main__':

save_data()

3. 爬取全国高校名单

这个案例使用正则表达式和requests库爬取全国高校名单,并将这些信息保存到TXT文件中。

import requests

import re

# 请求URL

url = ''

# 请求头部

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.36'

}

# 解析页面函数

def parse_html(html):

pattern = re.compile('.*?(.*?).*?

.*?(.*?).*?(.*?).*?', re.S)

items = re.findall(pattern, html)

for item in items:

yield {

'排名': item[0],

'学校名称': item[2],

'省市': item[3],

'总分': item[4]

}

# 保存数据函数

def save_data():

f = open('university_top100.txt', 'w', encoding='utf-8')

response = requests.get(url, headers=headers)

for item in parse_html(response.text):

f.write(str(item) + '\\\\n')

f.close()

if __name__ == '__main__':

save_data()

4. 爬取中国天气网城市天气

这个案例使用xpath和requests库爬取中国天气网的城市天气,并将这些信息保存到CSV文件中。

import requests

from lxml import etree

import csv

# 请求URL

url = ''

# 请求头部

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.36'

}

# 解析页面函数

def parse_html(html):

selector = etree.HTML(html)

city = selector.xpath('//*[@id="around"]/div/div[1]/div[1]/h1/text()')[0]

temperature = selector.xpath('//*[@id="around"]/div/div[1]/div[1]/p/i/text()')[0]

weather = selector.xpath('//*[@id="around"]/div/div[1]/div[1]/p/@title')[0]

wind = selector.xpath('//*[@id="around"]/div/div[1]/div[1]/p/span/text()')[0]

return city, temperature, weather, wind

# 保存数据函数

def save_data():

f = open('beijing_weather.csv', 'w', newline='', encoding='utf-8-sig')

writer = csv.writer(f)

writer.writerow(['城市', '温度', '天气', '风力'])

for i in range(10):

response = requests.get(url, headers=headers)

city, temperature, weather, wind = parse_html(response.text)

writer.writerow([city, temperature, weather, wind])

f.close()

if __name__ == '__main__':

save_data()

5. 爬取当当网图书信息

这个案例使用xpath和requests库爬取当当网图书信息,并将这些信息保存到CSV文件中。

import requests

from lxml import etree

import csv

# 请求URL

url = ''

# 请求头部

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.36'

}

# 解析页面函数

def parse_html(html):

selector = etree.HTML(html)

book_list = selector.xpath('//*[@id="search_nature_rg"]/ul/li')

for book in book_list:

title = book.xpath('a/@title')[0]

link = book.xpath('a/@href')[0]

price = book.xpath('p[@class="price"]/span[@class="search_now_price"]/text()')[0]

author = book.xpath('p[@class="search_book_author"]/span[1]/a/@title')[0]

publish_date = book.xpath('p[@class="search_book_author"]/span[2]/text()')[0]

publisher = book.xpath('p[@class="search_book_author"]/span[3]/a/@title')[0]

yield {

'书名': title,

'链接': link,

'价格': price,

'作者': author,

'出版日期': publish_date,

'出版社': publisher

}

# 保存数据函数

def save_data():

f = open('dangdang_books.csv', 'w', newline='', encoding='utf-8-sig')

writer = csv.writer(f)

writer.writerow(['书名', '链接', '价格', '作者', '出版日期', '出版社'])

response = requests.get(url, headers=headers)

for item in parse_html(response.text):

writer.writerow(item.values())

f.close()

if __name__ == '__main__':

save_data()

6. 爬取糗事百科段子

这个案例使用xpath和requests库爬取糗事百科的段子,并将这些信息保存到TXT文件中。

import requests

from lxml import etree

# 请求URL

url = ''

# 请求头部

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.36'

}

# 解析页面函数

def parse_html(html):

selector = etree.HTML(html)

content_list = selector.xpath('//div[@class="content"]/span/text()')

for content in content_list:

yield content

# 保存数据函数

def save_data():

f = open('qiushibaike_jokes.txt', 'w', encoding='utf-8')

for i in range(3):

url = '' + str(i+1) + '/'

response = requests.get(url, headers=headers)

for content in parse_html(response.text):

f.write(content + '\\\\n')

f.close()

if __name__ == '__main__':

save_data()

7. 爬取新浪微博

这个案例使用selenium和requests库爬取新浪微博,并将这些信息保存到TXT文件中。

import time

from selenium import webdriver

import requests

# 请求URL

url = ''

# 请求头部

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.36'

}

# 解析页面函数

def parse_html(html):

print(html)

# 保存数据函数

def save_data():

f = open('weibo.txt', 'w', encoding='utf-8')

browser = webdriver.Chrome()

browser.get(url)

time.sleep(10)

browser.find_element_by_name('username').send_keys('username')

browser.find_element_by_name('password').send_keys('password')

browser.find_element_by_class_name('W_btn_a').click()

time.sleep(10)

response = requests.get(url, headers=headers, cookies=browser.get_cookies())

parse_html(response.text)

browser.close()

f.close()

if __name__ == '__main__':

save_data()

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

有需要的小伙伴,可以V扫描下方二维码免费领取

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!

2️⃣国内外Python书籍、文档

① 文档和书籍资料

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。

参考文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。