精华内容
下载资源
问答
  • python爬虫实现自动翻页
    千次阅读
    2021-03-06 16:53:46

    写出来的爬虫,肯定不能只在一个页面爬,只要要爬几个页面,甚至一个网站,这时候就需要用到翻页了

    其实翻页很简单,还是这个页面http://bbs.fengniao.com/forum/10384633.html,话说我得给这个人增加了多大的访问量啊......

    10384633重点关注下这个数字,这个就是页面的名称,现在尝试把这个数字+/-1看看有没有结果

    验证http://bbs.fengniao.com/forum/10384634.html

    2d7f1aca56a1c3fad6074ed6cf00a85b.png

    可以看到,这个页面是可以访问的

    再试试http://bbs.fengniao.com/forum/10384632.html,这次不截图了,可以自己去试试,也是可以访问的

    那么接下来就好办了,只要把这个数字每次+1或-1就可以了,甚至可以从http://bbs.fengniao.com/forum/1.html开始尝试连接,一直+1,直到502或404断开

    下面上代码,还是用之前的内容,这次加了个页面处理的函数

    #!/usr/bin/python#coding: UTF-8

    importurllibimporturllib2importre#处理地址,并获取页面全部的图片地址

    defget_image_url(url):#url_format = urllib2.Request(url) #1

    url_open = urllib.urlopen(url) #2

    url_read = url_open.read() #3

    re_value = re.compile('(?<=src\=\").*?\.jpg')

    image_url_list= re.findall(re_value,url_read) #4

    returnimage_url_list#这个函数专门用来下载,前面两行是将图片连接中/前面的内容全部删除,留下后面的文件名用来保存文件的,try不说了,不清楚请翻回去看容错

    defdown_image(image_url):

    rev= '^.*/'file_name= re.sub(rev,'',image_url)try:

    urllib.urlretrieve(image_url,file_name)except:print 'download %s fail' %image_urlelse:print 'download %s successed' %image_url#这个函数用来处理页面,每次+1

    defget_page(url):

    url_num= re.search('(?<=\/)[0-9]+(?=\.)',url)

    url_num=url_num.group()

    url_num_1= int(url_num) + 1url=url.replace(url_num,str(url_num_1))returnurlif __name__ == '__main__':

    url= 'http://bbs.fengniao.com/forum/10384633.html'

    for n in range(1,10):

    url=get_page(url)

    image_url_list=get_image_url(url)for image_url inimage_url_list:

    down_image(image_url)#5

    其实可以给get_page传两个参数,一个是URL另一个是递增的数值,就变成了get_page(url,n),但是我没有这么写,可以思考下为什么,如果把for n in range(1,10)改成while True会怎样?嘿嘿......回头人家封你IP可别找我啊

    更多相关内容
  • python爬虫怎么实现翻页

    千次阅读 2020-11-21 00:29:37
    很多初学python爬虫的小伙伴们都会遇到python爬虫翻页的问题,我在这里先介绍一种。需要爬取的网站如图所示查询的这种植物有四页。当我们平时翻页时,首先想到肯定是点击页面上的下一页,写爬虫也是如此,想提取页面...

    5d15d08e1ba64162.jpg

    很多初学python爬虫的小伙伴们都会遇到python爬虫翻页的问题,我在这里先介绍一种。

    需要爬取的网站如图所示

    1561710060206344.jpg

    查询的这种植物有四页。当我们平时翻页时,首先想到肯定是点击页面上的下一页,写爬虫也是如此,想提取页面上的链接进行访问。但是这样做很麻烦,并且效率很低。

    翻页的方式一般有两种:

    1、观察网站翻页时链接变化

    2、如果写爬虫的请求方式是post方式请求,则需要观察post的数据的变化是否有规律

    今天讲得是第一种方法

    如图,当我点击下一页时,观察到地址栏的链接变化

    1561710131260426.jpg

    在链接中我们可以惊喜的发现,有page关键字,而且恰好为2,我们试验一下,将链接中page的值改为3,发现正常访问,正好是第三页。因此,我们找到了翻页方式,更改链接中关键字的值。

    因此翻页过程步骤为:

    1、获取总网页数目

    2、利用for循环改变page的值,进行翻页。

    具体翻页代码实现如下:

    获取总页码

    1561710206437452.jpg

    网络请求方式

    1561710344397875.jpg

    改变请求头中的page数值

    1561710415815436.jpg

    更多Python相关技术文章,请访问Python教程栏目进行学习!

    以上就是python爬虫怎么实现翻页的详细内容,更多请关注php中文网其它相关文章!

    article_wechat2021.jpg?1111

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!

    展开全文
  • ='false': break # 点击下一页 next_page.click() if __name__=='__main__': douyu_spider = Douyu() douyu_spider.run() 到此这篇关于python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解的文章就介绍到这了...

    基本思路:

    首先用开发者工具找到需要提取数据的标签列

    利用xpath定位需要提取数据的列表

    然后再逐个提取相应的数据:

    保存数据到csv:

    利用开发者工具找到下一页按钮所在标签:

    利用xpath提取此标签对象并返回:

    调用点击事件,并循环上述过程:

    最终效果图:

    代码:

    from selenium import webdriver

    import time

    import re

    class Douyu(object):

    def __init__(self):

    # 开始时的url

    self.start_url = "https://www.douyu.com/directory/all"

    # 实例化一个Chrome对象

    self.driver = webdriver.Chrome()

    # 用来写csv文件的标题

    self.start_csv = True

    def __del__(self):

    self.driver.quit()

    def get_content(self):

    # 先让程序两秒,保证页面所有内容都可以加载出来

    time.sleep(2)

    item = {}

    # 获取进入下一页的标签

    next_page = self.driver.find_element_by_xpath("//span[text()='下一页']/..")

    # 获取用于判断是否是最后一页的属性

    is_next_url = next_page.get_attribute("aria-disabled")

    # 获取存储信息的所有li标签的列表

    li_list = self.driver.find_elements_by_xpath("//ul[@class='layout-Cover-list']//li")

    # 提取需要的数据

    for li in li_list:

    item["user-id"] = li.find_element_by_xpath(".//div[@class='DyListCover-userName']").text

    item["img"] = li.find_element_by_xpath(".//div[@class='DyListCover-imgWrap']//img").get_attribute("src")

    item['class-name'] = li.find_element_by_xpath(".//span[@class='DyListCover-zone']").text

    item["click-hot"] = li.find_element_by_xpath(".//span[@class='DyListCover-hot']").text

    item["click-hot"] = re.sub(r'\n','',item['click-hot'])

    # 保存数据

    self.save_csv(item)

    # 返回是否有下一页和下一页的点击事件的标签,

    return next_page,is_next_url

    def save_csv(self,item):

    # 将提取存放到csv文件中的内容连接为csv格式文件

    str = ','.join([i for i in item.values()])

    with open('./douyu.csv','a',encoding='utf-8') as f:

    if self.start_csv:

    f.write("用户id,image,所属类,点击热度\n")

    self.start_csv = False

    # 将字符串写入csv文件

    f.write(str)

    f.write('\n')

    print("save success")

    def run(self):

    # 启动chrome并定位到相应页面

    self.driver.get(self.start_url)

    while True:

    # 开始提取数据,并获取下一页的元素

    next_page,is_next = self.get_content()

    if is_next!='false':

    break

    # 点击下一页

    next_page.click()

    if __name__=='__main__':

    douyu_spider = Douyu()

    douyu_spider.run()

    到此这篇关于python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解的文章就介绍到这了,更多相关python爬虫实现自动翻页爬取某鱼数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    展开全文
  • 主要爬虫思路 (1).首先要有一个start_url作为第一次网页数据的获取 (2).通过Xpath方法获取数据中jpg的URL (3).同时通过Xpath方法获取’下一页‘的URL作为next_url (4).进入循环 3.代码如下(有很多需要改进的地方,请...

    1.模块的使用

    (1).random模块:

    主要是为了产生随机数作为写入jpg的名称(这里其实可以用字典形式表示之后再提取图片主要内容作为不同jpg的名称)。

    (2).requests模块:

    通过请求获取网页数据。

    (3)lxml模块:

    主要用来从网页数据中通过Xpath方法查找自己想要的数据(这里etree会报错但是能正常使用不用管)。

    2.主要爬虫思路

    (1).首先要有一个start_url作为第一次网页数据的获取

    (2).通过Xpath方法获取数据中jpg的URL

    (3).同时通过Xpath方法获取’下一页‘的URL作为next_url

    (4).进入循环

    3.代码如下(有很多需要改进的地方,请大佬评论区指点):

    import random
    import requests
    from lxml import etree
    class Jpgspirer:
        def __init__(self):
            self.header = {
                'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36',
                "cookie": "Hm_lvt_86200d30c9967d7eda64933a74748bac = 1642225685, 1642344194;t = 244406d180636c9c3bf6b1439e8d8351;r = 1418;Hm_lpvt_86200d30c9967d7eda64933a74748bac = 1642344258"
            }
    
        def res(self,start_url):#获取网页响应数据
            res=requests.post(start_url,headers=self.header)
            return res.content.decode()
    
        def maincontent(self,content):#获取jpg的url
            html=etree.HTML(content)#将html数据规范化便于查找
            ret=html.xpath('//div[@class=\"egeli_pic_li\"]//img/@src')#查找jpg-URL
            return ret
    
        def next_url(self,content):#获取下一页URL
            html=etree.HTML(content)#将数据规范化
            ret=html.xpath('//a[@class=\"next_p\"]/@href')#查找next_url
            if len(ret)>0:  #判断next_url是否存在,若不存在返回None值以便结束循环
                return ret[0]
            else:
                return None
        def save(self,jpglist):# 将获取到的每个jpg写入到当前文件夹
            for item in jpglist:
                filename = "{}.jpg"
                fname = filename.format(random.uniform(1, 1000))
                res = requests.get(item, headers=self.header)
                with open(fname,'wb') as file:
                    file.write(res.content)
                print('保存成功')
    
        def run(self,start_url):   #实现主要逻辑
            content=self.res(start_url)
            jpg_list=self.maincontent(content)
            next_url=self.next_url(content)
            self.save(jpg_list)     #start_url数据获取并得到next_url
            while next_url!=None:  #进入循环
                content=self.res(next_url)
                jpg_list.extend(self.maincontent(content))
                next_url=self.next_url(content)
                self.save(jpg_list)
    
    if __name__ == '__main__':
        Spider=Jpgspirer()
        Spider.run(' https://mm.enterdesk.com/')#传入start_url
    
    

    展开全文
  • 自动翻页分为两种情况:此处所举例子有一定的时效性,请具体情况具体分析,方法类似(1)一种是像我之前爬虫新京报网的新闻,下一页的url可以通过审查元素获得,第一页的网址是...下一页按钮的审查元素是我们通过获取next...
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本品文章来自腾讯云 作者:孤独的明月 基本思路: 首先用开发者工具找到需要提取数据的标签列...
  • 很多同学对python爬虫翻页感到很是头疼,下面我教给大家一个最简单的办法:模糊搜索法。以这个网站 :https://m.51xw.net/meizi/为例打开网站我们先看到的是一个个的图集,点开图集后,里面是图片,一张一页,上面的...
  • 运行上面的代码后执行的结果如下: >>> 我是刚获取的翻页按钮的路径数组: [, , ] 我是当前窗口的句柄: 2147483652 我是翻页按钮上的文本信息: « 上一页 我是翻页按钮的地址 None 刚翻页完成了! 我是翻页按钮上的...
  • 怎样用python爬虫实现自动监测百度是否收录域名 在一些新站点上线时,具有SEO意识的公司/人往往会非常关注自己的网站(域名)是否已经被百度收录了,因为只有百度能搜索得到,你的网站才是真正意义上的在这个世界上...
  • 把你的allowed_domains 和 start_urls修改一下即可(为了代码简洁,删除 url="http://xjh.haitou.cc 这个定义(没必要))。修改完后,判断有一下还有一下的话,继续爬取数据:yield scrapy.Request(response.urljoin...
  • 求大神指导,本人刚接触到python爬虫,有一些问题,再此感激不尽!!!!我想爬取一些英文新闻标题,然后把他们存在一个csv文件里面我的代码如下import csv, requests, refrom bs4 import BeautifulSoupurls = ['...
  • Python爬虫实战(一):翻页爬取数据存入SqlServer

    千次阅读 多人点赞 2021-11-12 15:28:57
    python爬虫实战基础
  • 近期在翻看视频学习爬虫,把每天学习的内容记录下~如有一起学习的爬友就更好了。简单基础1、正则表达式用途:用于信息筛选提取1、全局匹配函数使用格式:re.compole(‘正则表达式’).findall(‘源字符串’)普通字符...
  • 对于淘宝这个网站,翻页可以有很多种方法,我们可以点击下一页,可以点击数字,也可以直接输入页数然后回车,这里我自己是采用点击下一页的方法,这样就不用获取总页数,因为当到达最后一页时,包含下一页的标签的...
  • 基于Github Actions的自动Python爬虫,支持自动分析最新游戏链接、自动翻页、正则自适应图片名、自动选择下载高清图片、自动删除重复文件、自动更新新文件等 结构 此仓库内共有两个爬虫程序:main.py、update.py以及...
  • 上次有说过,我在新公司有部分工作是负责爬虫业务的,爬虫机器有上百台,节点也要计划迁入了Docker平台上。 这两天遇到一个棘手的问题,就是因为我们为了追求数据量,在某些机房,用docker启动了不少爬虫节点,导致...
  • python3实现自动翻页

    2019-03-07 11:05:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • python爬虫技术整理

    2022-02-20 20:52:06
    Python爬虫——新闻热点爬取 中国新闻网,今日头条, 显示更多 可以看到相关的数据接口,里面有新闻标题以及新闻详情的url地址 如何提取url地址 1、转成json,键值对取值; 2、用正则表达式匹配url地址; 根据接口...
  • excel如何实现 自动获取网页中的数值数据导入外部数据新建web数据输入数值网页说在的网址,然后选择需要导入的表格,就可以了。如需刷新,鼠标右键选择刷新即可。数据-导入外部数据-新建Web查询 输入网页地址,点击...
  • 前期准备 需要下好一些包: request urllib3 PyQuery 安装教程有很多,我就不过多描述了 ...值得一提的是PyQuery可以使用类似CSS选择器的方式选择标签,大大的提高了选择标签的效率 ...from reque...
  • python爬虫遇到爬取文件内容时,需要一页页的翻页爬取,这样很是麻烦,其实可以获取每个列表信息下的文件名和文件链接,让文件名和文件链接处理为列表,保存后下载,实现智能翻页批量下载文件,本文以以京客隆为例,...
  • 1. 问题归纳搜索答案的过程中发现,关于爬虫中网页翻页的问题还是挺多的,各家由于网站数据规范性不一,遇到的问题也略有出入,主要有两大类,还有我遇到的这第三类:一是,网页静态加载,现象是每次翻页都提供一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,804
精华内容 1,121
热门标签
关键字:

python爬虫实现自动翻页