精华内容
下载资源
问答
  • 爬虫案例
    千次阅读
    2022-05-11 18:48:30
    import scrapy
    from ..items import XiaoyouhuiItem
    
    class XiaoyoujiSpider(scrapy.Spider):
        name = 'XiaoYouHui'
        allowed_domains = ['moc.yxanihc.www']
        start_urls = ['lmth.llalmyz2202/2202/xedni2202/moc.yxanihc.www//:ptth']
        yjmu=['法学','工学','管理学','教育学','经济学','理学','历史学','农学','文学','医学','艺术学','哲学']
    
        #获取专业分类链接
        def parse(self, response):
            yjsj =[]
            trs = response.xpath('//tr')
            i = 0
            for tr in trs:
                font=tr.xpath('./td/font/text()').get()
                if font:
                    if font.strip().replace(' ','') in self.yjmu:
                        yjsj.append([font.strip().replace(' ',''),i])
                i+=1
            for n in range(len(yjsj)):
                yijidalei=yjsj[n][0]
                if n+1==len(yjsj):
                    for tr in trs[yjsj[n][1]:]:
                        yield scrapy.Request(response.urljoin(tr.xpath('./td/a/@href').get()),callback=self.parse_xx,meta={'zydl':tr.xpath('./td/a/font/text()').get(),'zyml':yijidalei})
                else:
                    for tr in trs[yjsj[n][1]:yjsj[n+1][1]]:
                        yield scrapy.Request(response.urljoin(tr.xpath('./td/a/@href').get()), callback=self.parse_xx,meta={'zydl': tr.xpath('./td/a/font/text()').get(), 'zyml': yijidalei})
    
        #获取专业信息
        def parse_xx(self,response):
            if '/news/' in response.url:
                tr_list=response.xpath('//div[@class="text"]//tr')[1:]
                zymc = ""  # 专业名称
                zylx = ""  # 专业类别
                qgpm = ""  # 全国排名
                xxmcs = ""  # 学校名称
                xjpm = ""  # 星级排名
                zydc = ""  # 专业档次
                for tr in tr_list:
                    p_list=tr.xpath('./td/p//text()').getall()
                    if p_list[0]!='\xa0':
                        zymc=p_list[0]#专业名称
                    if p_list[1] != '\xa0':
                        zylx=p_list[1]#专业类别
                    if p_list[2] != '\xa0':
                        qgpm=p_list[2]#全国排名
                    if p_list[3] != '\xa0':
                        xxmcs=p_list[4]#学校名称
                    if p_list[4] != '\xa0':
                        xjpm=p_list[3]#星级排名
                    if p_list[5] != '\xa0':
                        zydc=p_list[5]#专业档次
                    for xxmc in xxmcs.split('、'):
                        item = XiaoyouhuiItem()
                        item['yjdl']=response.meta['zyml']#专业门类
                        item['ejdl']=response.meta['zydl']#专业大类
                        item['zymc']=zymc#专业名称
                        item['zylx']=zylx#专业类别
                        item['qgpm']=qgpm#全国排名
                        item['xxmc']=xxmc#学校名称
                        item['xjpm']=xjpm#星级排名
                        item['zydc']=zydc#专业档次
                        item['url']=response.url
                        print(item)
                        yield item

    更多相关内容
  • 拉钩scrapy爬虫案例

    2020-03-29 00:06:38
    用scrapy框架爬取拉钩职位信息,保存为csv文件,并上传到mysql数据库当中。此案例仅用于学习爬虫技术,不作商业用途。若侵权,请联系删除。
  • C#简单爬虫案例分享 c#经典案例.pdf
  • python-websocket爬虫案例
  • 爬虫案例比较

    2018-03-20 10:01:25
    爬虫案例比较,爬虫案例比较,爬虫案例比较,爬虫案例比较爬虫案例比较
  • Python爬虫案例实战从零开始一站通;20章,共计129节,完整版,附源码;第一章:零基础入门Python网络爬虫 第二章、Urllib模块基础与糗事百科爬虫项目实战 第三章、淘宝商品图片爬虫开发实战 第四章、 用户代理池与...
  • 使用selenium模块来模拟人工登陆,并自动进行滑块验证
  • Java爬虫案例

    2016-08-24 19:05:19
    一个简单的java爬虫
  • │ Python3爬虫课程资料代码 │ ├─章节1: 环境配置 │ 课时01:Python3+Pip环境配置.mp4 │ 课时02:MongoDB环境配置.mp4 │ 课时03:Redis环境配置.mp4 │ 课时04:MySQL的安装.mp4 │ 课时05:Python多版本...
  • C#简单爬虫案例分享

    2021-01-01 04:30:03
    本文实例为大家分享了C#简单爬虫案例,供大家参考,具体内容如下 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Text.Regular...
  • Python爬虫案例教与学教学大纲.pdfPython爬虫案例教与学教学大纲.pdfPython爬虫案例教与学教学大纲.pdfPython爬虫案例教与学教学大纲.pdfPython爬虫案例教与学教学大纲.pdfPython爬虫案例教与学教学大纲.pdfPython...
  • selenium的爬虫案例

    千次阅读 2022-04-22 11:44:51
    from time import sleep from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import ...
    from time import sleep
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    from selenium.webdriver.common.by import By
    from selenium.webdriver.chrome.options import Options
    import random
    import pymysql
    from lxml import etree
    from webdriver_manager.chrome import ChromeDriverManager
    
    
    class Xkpm():
    
        def __init__(self):
            """
            提了一些建议,想一下还是删了
            """
            _path = ChromeDriverManager(url="https://npm.taobao.org/mirrors/chromedriver").install()
            chrome_options = Options()
            #添加一些反反爬的配置
            # chrome_options.add_argument("--headless")
            chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
            chrome_options.add_argument("--disable-blink-features=AutomationControlled")
            self.driver = webdriver.Chrome(service=Service(_path), options=chrome_options)
            self.driver.maximize_window()
            self.driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
                "source": """
                            Object.defineProperty(navigator, 'webself.driver', {
                              get: () => undefined
                            })
                          """
            })
            self.driver.implicitly_wait(10)
            self.driver.get('https://www.shanghairanking.cn/')
            self.xk_list = []
            # 打开数据库连接
            self.db = pymysql.connect(host='localhost', user='root', password='957312a.', database='mymysql')
    
            # 使用 cursor() 方法创建一个游标对象 cursor
            self.cursor = self.db.cursor()
    
        # 随机等待时间
        def random_time(self):
            sleep(random.uniform(3, 8))
    
        # 遍历专业
        def parse_xk(self):
            self.driver.get('https://www.shanghairanking.cn/rankings/bcsr/2021')
            self.random_time()
            # 遍历一级目录
            for left in self.driver.find_elements(By.XPATH, '//*[@class="subject-item"]'):
                category = left.find_element(By.XPATH, './/*[@class="subject-category"]').text.split("\n")
                for link in left.find_elements(By.XPATH, './/*[@class="subj-link"]'):
                    xk_dic = {}
                    xk_dic['xkmudm'] = category[0]  # 学科目录代号
                    xk_dic['xkmumc'] = category[1]  # 学科目录名称
                    subj_link = link.text.split(" ")
                    xk_dic['xkmcdm'] = subj_link[0]  # 学科名称代码
                    xk_dic['xkmc'] = subj_link[1]  # 学科名称
                    xk_dic['href'] = link.get_attribute('href')
                    self.xk_list.append(xk_dic)
            # print(self.xk_list)
            for xk in self.xk_list:
                self.driver.get(xk['href'])
                self.parse_xx(xk)
            self.end_pachong()
    
        # 排名学校
        def parse_xx(self,xk):
            self.random_time()
            tree = etree.HTML(self.driver.page_source)
            tr_list = tree.xpath('//*[@id="content-box"]/div[2]/table/tbody/tr')
            for tr in tr_list:
                xxmp1 = self.knrcl(tr.xpath('.//*[@class="ranking"]/text()')).strip()#排名1
                xxmp2 = self.knrcl(tr.xpath('./td/span/text()')).strip()#排名2
                qbcc = self.knrcl(tr.xpath('./td[3]/text()')).strip()#全部层次
                xxmc = self.knrcl(tr.xpath('.//a[@class="name-cn"]/text()')).strip()#学校名称
                zf = self.knrcl(tr.xpath('./td[5]/text()')).strip()#总分
                print(xk['xkmudm'], xk['xkmumc'], xk['xkmcdm'],xk['xkmc'],xxmp1,xxmp2,qbcc,xxmc,zf,xk['href'])
                sql = """INSERT INTO xkpm(xkmudm,xkmumc,xkmcdm,xkmc,xxmp1,xxmp2,qbcc,xxmc,zf,hrefxxmc)
                                      VALUES ("{}","{}","{}","{}","{}","{}","{}","{}","{}","{}")""".format(
                    xk['xkmudm'], xk['xkmumc'], xk['xkmcdm'],xk['xkmc'],xxmp1,xxmp2,qbcc,xxmc,zf,xk['href']+':'+xxmc
                )
                try:
                    self.cursor.execute(sql)
                    self.db.commit()
                except Exception as e:
                    print(e)
                    self.db.rollback()
                sleep(.1)
            self.random_time()
            try:
                pa_xy = self.driver.find_element(By.XPATH, '//li[@title="下一页"]')
                if pa_xy.get_attribute('tabindex') == '0':
                    pa_xy.click()
                    self.random_time()
                    self.parse_xx(xk)
                else:
                    pass
            except:
                pass
            self.random_time()
    
        # 空内容处理
        def knrcl(self, cl):
            try:
                return cl[0]
            except:
                return ''
    
        # 关闭浏览器和数据库
        def end_pachong(self):
            self.driver.quit()
            self.db.close()
    
    Xkpm().parse_xk()

    展开全文
  • 今天给大家来点最简单的爬虫案例,后续我会再给大家更新一些爬虫相关技能点

    大家好,我是小帅

    今天给大家来点最简单的爬虫案例,后续我会再给大家更新一些爬虫相关技能点,请持续关注,另外你的三连是对小帅最大的支持 不过声明一下小帅 发的所有案例都是供大家学习的,不要随便乱用,或者作为商用!
    在这里插入图片描述

    前言

    我们第一个爬虫程序,是来爬取某视频网的所有教程信息的名字。下面的代码锁使用到的技术有的我们并没有涉及到,后面的学习中我们会一一讲解。 这里只是让大家对爬虫程序有个大概的了解,熟悉最基本的爬虫流程,以及对爬虫处理有一个粗略的印象,同时,也是激发大家学习的热情,让大家对爬虫不仅停留在理论上,也可以实际操作去加深印象。
    还有一些小案例,25个游戏源码 点击前面蓝色字体自取

    1.1 建立 imoocSpider.py 文件

    爬虫文件的命名一定要准确,爬虫爬取的是哪一个网站就用哪一个网站来进行命名,这样以后我们写的爬虫越来越多会方便管理。

    文件创建好之后首先导入 requests 第三方库和页面解析工具 BeautifulSoup:

    import requests   # requests库,用来发送网络请求from bs4 import BeautifulSoup   # 一个解析库,用来解析网页结构

    Tips:BeautifulSoup 我们在后面会讲到,这里只是先用一下。

    1.2 定义网址变量

    定义网址变量 url,url 中存储的是我们要爬取的网站

    url = "https://www.imooc.com" #某课网首页地址
    

    1.3 创建请求头部

    创建请求头部,因为服务器会分辨请求的是浏览器或者是爬虫,如果是爬虫的话会直接断开请求,导致请求失败。为了不让我们的爬虫暴露,所以要给它加上一层伪装,这样服务器就会认为是浏览器在请求了:

    headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36'} # 请求头部

    1.4 发起请求

    使用 requests 库中的 get 方法来进行请求:

    r = requests.get(url, headers= headers) # 发送请求
    

    1.5 解析请求结果

    因为请求的结果是 HTML 格式的,所以我们使用 BeautifulSoup 来解析我们的请求结果:

    bs = BeautifulSoup(r.text, "html.parser")   # 解析网页

    在返回的请求结果中,我们想要的数据都是在 h3 标签中包裹着,所以我们使用 BeautifulSoup 查找返回结果中所有的 h3 标签并剥离,存储在变量 mooc_classes 中。

    mooc_classes = bs.find_all("h3", class_="course-card-name") # 定位教程信息
    

    1.6 解析数据

    将每一个 h3 标签中的课程名称剥离,并存储在 class_list 这个列表中去,最后将课程信息存入到文本文件中:

    class_list = []for i in range(len(mooc_classes)):
        title = mooc_classes[i].text.strip()
        class_list.append("课程名称 : {} \n".format(title)) #格式化教程信息with open('mooc_classes.txt', "a+") as f: # 将教程信息写入文本文件中
        for text in class_list:
            f.write(text)
    

    1.7 最终代码

    下面就是我们这个小爬虫的最终代码

    实例演示

    import requests   # requests库,用来发送网络请求from bs4 import BeautifulSoup   # 这是一个解析库,用来解析网页
    ​
    url = "https://www.......com" #教程网首页地址
    ​
    headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36'} # 请求头部
    ​
    r = requests.get(url, headers= headers) # 发送请求
    ​
    bs = BeautifulSoup(r.text, "html.parser")   # 解析网页
    ​
    mooc_classes = bs.find_all("h3", class_="course-card-name") # 定位教程信息
    ​
    class_list = []for i in range(len(mooc_classes)):
        title = mooc_classes[i].text.strip()
        class_list.append("课程名称 : {} \n".format(title)) #格式化教程信息with open('mooc_classes.txt', "a+") as f: # 将教程信息写入文本文件中
        for text in class_list:
            f.write(text)

    **上面的程序,就是一个最简单的一个爬虫程序。**最后,我们格式化输出的样式,使得输出格式为 教程名称+教程网名称的样式,最后把结果保存到一个 TXT 文件里面。最后我们打开 TXT 文件看一下效果:

    在这里插入图片描述

    小结

    本小节,通过运用 BeautifulSoup 以及 Requests 实现了一个最简单的爬虫程序,关于它们的学习,我们会在后面的章节进行详细论述。这个小程序,只是向大家演示一个最基本的爬虫的工作流程。细心的同学肯定会发现,我们的代码量并不是很多,就轻松实现了一个简单的爬取工作。其实,正式因为使用Python 编写爬虫程序的简单方便,才使得 Python 语言成为了写爬虫程序的首选

    ↓ ↓ ↓ ↓ 底下名片拿源码还有学习路线等等...↓ ↓ ↓ ↓????
    展开全文
  • Python爬虫案例教与学教学大纲.docxPython爬虫案例教与学教学大纲.docxPython爬虫案例教与学教学大纲.docxPython爬虫案例教与学教学大纲.docxPython爬虫案例教与学教学大纲.docxPython爬虫案例教与学教学大纲....
  • python爬虫入门(简单爬虫案例

    千次阅读 2021-09-11 14:08:31
    二、爬虫的过程: 1.发起请求:通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应 2.获取响应内容:如果服务器能正常响应,会得到一个Response,Response的...

    一、工具:

    pycharm,python3.7

    二、爬虫的过程:

    1.发起请求:通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应

    2.获取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型

    3.解析内容:得到的内容可能是HTML,可以用正则表达式,页面解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理

    4.保存数据:保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件

    三、简单案例:

    import requests
    req=requests.get('https://www.csdn.net') #请求CSDN首页
    print(req) #打印请求结果的状态码
    print(req.content) #打印请求到的网页源码,content返回的是bytes型也就是二进制的数据。
    print(req.text) #text返回的是Unicode型的数据。
    

    四、解析源码并保存数据:

    from bs4 import BeautifulSoup
    import requests
    req=requests.get('https://www.csdn.net') #请求CSDN首页
    
    bsobj=BeautifulSoup(req.content,'lxml') #将网页源码构造成BeautifulSoup对象,方便操作
    a_list=bsobj.find_all('a') #获取网页中的所有a标签对象
    text='' # 创建一个空字符串
    for a in a_list:
        href=a.get('href') #获取a标签对象的href属性,即这个对象指向的链接地址
        text+=href+'\n' #加入到字符串中,并换行
    with open('url.txt','w') as f: #在当前路径下,以写的方式打开一个名为'url.txt',如果不存在则创建
        f.write(text) #将text里的数据写入到文本中
        print("完成")

    结果:

     

    展开全文
  • java爬虫,基于jsoup
  • 网络爬虫案例解析

    2020-08-31 03:21:28
    本文主要介绍了网络爬虫的小案例。具有很好的参考价值。下面跟着小编一起来看下吧
  • 爬虫案例_5个.zip

    2021-07-07 16:51:18
    各位努力的小伙伴,尽管拿去学习用,仅求好评,收藏更好。 主要内容如下: 1)百度百科轻巧版:简易获取词条信息;2) 爬取各平台热榜并发送到QQ好友:微博、贴吧、知乎;3)爬取拉勾网;4) QQ聊天清平专用;...
  • python爬取小说与图片源码案例,附送一个自写的视频程序
  • 这是最简单的Python爬虫案例,如果你能看懂,那么请你保持信心,因为你已经入门Python爬虫,只要带着信心和努力,你的技术能力在日后必定价值15K月薪。 这次是要爬取网易新闻,包括新闻标题、作者、来源、发布时间...
  • 最简洁最易懂python爬虫案例,根据给定的网址来获取网页详细信息,得到的html就是网页的源代码。
  • 某个电商平台商品爬虫代码,属于全店商品爬虫,非搜索类。环境Python3,采用aiohttp+asyncio进行异步请求处理。
  • 使用python爬取一些在线文档
  • 主要介绍了Python 正则表达式爬虫使用案例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • python爬虫案例.zip

    2021-09-27 09:31:44
    爬取中国数字图书馆书籍信息的一个爬虫简单项目
  • 豆瓣电影爬虫案例

    2018-12-13 21:38:29
    利用爬虫技术,爬取豆瓣电影科幻电影前34名个电影详细信息,和保存电影剧照的代码
  • 七麦数据爬虫案例

    千次阅读 2022-01-12 16:27:56
    本文案例主要分析七麦数据榜单中的analysis参数。
  • 爬虫案例分享
  • Python爬虫案例

    万人学习 2019-09-15 16:11:56
    Python爬虫案例,Python爬虫案例,Python爬虫案例,Python爬虫案例,Python爬虫案例Python爬虫案例,Python爬虫案例Python爬虫案例Python爬虫案例Python爬虫案例Python爬虫案例
  • 各种python爬虫案例.zip

    2021-03-05 17:15:37
    这里面包含了各种各样的爬虫案例,非常适合学习参考。所有代码可运行,没有任何bug。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,157
精华内容 18,062
关键字:

爬虫案例