Python爬虫教程——7个爬虫小案例(附源码)

06-01 1215阅读

本文介绍了7个Python爬虫小案例,包括爬取豆瓣电影Top250、猫眼电影Top100、全国高校名单、中国天气网、当当网图书、糗事百科段子和新浪微博信息,帮助读者理解并实践Python爬虫基础知识。

Python爬虫教程——7个爬虫小案例(附源码)


  • 包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!


    在文章开始之前先给大家简单介绍一下python爬虫

    一、什么是爬虫?

    1.简单介绍爬虫

    爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等。

    网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据支撑。搜索引擎通过网络爬虫技术,将互联网中丰富的网页信息保存到本地,形成镜像备份。我们熟悉的谷歌、百度本质上也可理解为一种爬虫。

    如果形象地理解,爬虫就如同一只机器蜘蛛,它的基本操作就是模拟人的行为去各个网站抓取数据或返回数据。

    2.爬虫的工作原理

    下图是一个网络爬虫的基本框架:

    Python爬虫教程——7个爬虫小案例(附源码)

    二、python爬虫能干什么?

    python爬虫就是模拟浏览器打开网页,获取网页中想要的那部分数据。利用爬虫我们可以抓取商品信息、评论及销量数据;可以抓取房产买卖及租售信息;可以抓取各类职位信息等。

    利用爬虫我们可以获取大量的价值数据,从而获得感性认识中不能得到的信息,比如:爬取知乎优质答案,为你筛选出各话题下最优质的内容。抓取淘宝、京东商品、评论及销量数据,对各种商品及用户的消费场景进行分析。

    抓取房产买卖及租售信息,分析房价变化趋势、做不同区域的房价分析。爬取各类职位信息,分析各行业人才需求情况及薪资水平。爬虫的本质:爬虫的本质就是模拟浏览器打开网页,获取网页中我们想要的那部分数据。

    三、Python7个爬虫小案例

    下面我将分享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文件中。

    4. 爬取中国天气网城市天气``这个案例使用xpath和requests库爬取中国天气网的城市天气,并将这些信息保存到CSV文件中。
    
    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[@]/span[@]/text()')[0]
    author = book.xpath('p[@]/span[1]/a/@title')[0]
    publish_date = book.xpath('p[@]/span[2]/text()')[0]
    publisher = book.xpath('p[@]/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[@]/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()
    

    希望这7个小案例能够帮助大家更好地掌握Python爬虫的基础知识!

    最后

    如果你也想学习Python,可以关注我,我会把自己知道的,曾经走过的弯路都告诉你,让你在学习Python的路上更加顺畅。

    我自己也整理了一套最新的Python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!

    包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等学习教程。带你从零基础系统性的学好Python!编程资料、学习路线图、源代码、软件安装包等!


    • 包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!


      ① Python所有方向的学习路线图,清楚各个方向要学什么东西

      ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析

      ③ 100多个Python实战案例,学习不再是只会理论

      ④ 华为出品独家Python漫画教程,手机也能学习

      ⑤ 历年互联网企业Python面试真题,复习时非常方便****

      Python爬虫教程——7个爬虫小案例(附源码)

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码