页面翻页,下一页可能是一个新的url

也有可能是用js进行页面跳转,url不变,解决方法是实现浏览器模拟人工翻页

目标:爬取同一个url下不同页的数据(上述第二种情况)

url:http://www.gx211.com/collegemanage/search.aspx?id=1&xxcity=1

中国高校之窗,我要爬取北京市所有的学校列表,共有四页数据,四页都是同一个url。

部分页面如图:

找到“下一页”按钮的源码,确认是用js进行的跳转。

工具:

  •  selenium
  • pyquery
  • 火狐浏览器

 代码:

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from pyquery import PyQuery as pq #
# 爬取北京市所有的学校
# browser = webdriver.Firefox() # 创建一个浏览器对象,这里还可以使用chrome等浏览器
try:
BJuniv = []
browser.get('http://www.gx211.com/collegemanage/search.aspx?id=1&xxcity=1') # 获取并打开url
for r in range(4):
html = browser.page_source # 获取html页面
doc = pq(html) # 解析html
table = doc('.content tbody') # 定位到表格
table.find('script').remove() # 除去script标签 list_cont = table('tr').items() # 获取tr标签列表
for i in list_cont:
univ = (i.text()).split() # 获取每个tr标签中的文本信息,返回一个列表
print(univ)
BJuniv.append(univ)
nextpagebutton = browser.find_element_by_xpath('//*[@id="Lk_Down"]') # 定位到“下一页”按钮
nextpagebutton.click() # 模拟点击下一页
wait = WebDriverWait(browser, 10) # 浏览器等待10s finally:
browser.close() # 关闭浏览器
with open("北京市所有大学.txt", "wt", encoding='utf8') as out_file: # 存储为txt格式
out_file.write('全国各省学校名单:\n\n')
for u in BJuniv:
out_file.write(str(u) + '\n')

运行过程:自动打开浏览器,输入url,获取页面,点击下一页,重复直到循环结束。(过程看不到很细致的,跳转比较快)

运行结果(部分):

python 使用selenium模块爬取同一个url下不同页的内容(浏览器模拟人工翻页)的更多相关文章

  1. [python爬虫] Selenium定向爬取PubMed生物医学摘要信息

    本文主要是自己的在线代码笔记.在生物医学本体Ontology构建过程中,我使用Selenium定向爬取生物医学PubMed数据库的内容.        PubMed是一个免费的搜寻引擎,提供生物医学方 ...

  2. [python爬虫] Selenium定向爬取海量精美图片及搜索引擎杂谈

    我自认为这是自己写过博客中一篇比较优秀的文章,同时也是在深夜凌晨2点满怀着激情和愉悦之心完成的.首先通过这篇文章,你能学到以下几点:        1.可以了解Python简单爬取图片的一些思路和方法 ...

  3. [python爬虫] Selenium定向爬取虎扑篮球海量精美图片

    前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...

  4. Python爬虫之使用Fiddler+Postman+Python的requests模块爬取各国国旗

    介绍   本篇博客将会介绍一个Python爬虫,用来爬取各个国家的国旗,主要的目标是为了展示如何在Python的requests模块中使用POST方法来爬取网页内容.   为了知道POST方法所需要传 ...

  5. [爬虫]用python的requests模块爬取糗事百科段子

    虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更 ...

  6. python的requests模块爬取网页内容

    注意:处理需要用户名密码认证的网站,需要auth字段. # -*- coding:utf-8 -*- import requests headers = { "User-Agent" ...

  7. python实例:自动爬取豆瓣读书短评,分析短评内容

    思路: 1.打开书本“更多”短评,复制链接 2.脚本分析链接,通过获取短评数,计算出页码数 3.通过页码数,循环爬取当页短评 4.短评写入到txt文本 5.读取txt文本,处理文本,输出出现频率最高的 ...

  8. [实战演练]python3使用requests模块爬取页面内容

    本文摘要: 1.安装pip 2.安装requests模块 3.安装beautifulsoup4 4.requests模块浅析 + 发送请求 + 传递URL参数 + 响应内容 + 获取网页编码 + 获取 ...

  9. python+selenium+xpath 爬取天眼查工商基本信息

    # -*- coding:utf-8 -*-# author: kevin# CreateTime: 2018/8/16# software-version: python 3.7 import ti ...

随机推荐

  1. Docker 简单部署 ElasticSearch

    https://www.cnblogs.com/jianxuanbing/p/9410800.html

  2. HTML 转 PDF的两种实现方式

    itextsharp:不怎么兼容html原代码,特别是div的布局.但是能更灵活的创建原生pdf代码 wkhtmltopdf:基本可以不用写代码,直接将html文件生成pdf 文件存放在自己的百度云盘 ...

  3. springboot实现自定义的错误页面展示

    https://blog.csdn.net/trusause/article/details/84299886 参考 SpringBoot默认的错误处理机制 默认效果为: 返回一个默认的错误页面 Wh ...

  4. 3、Docker镜像管理基础

    Docker image     # docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE redis -alpine 23d561d12e92 d ...

  5. 20165306 Exp0 Kali安装 Week1

    20165306 Exp0 Kali安装 Week1 实验要求 Kali 下载 安装 网络 共享 软件源 步骤一.下载Kali 根据网址https://www.kali.org/ 下载kali 点击 ...

  6. CSS scroll-behavior和JS scrollIntoView让页面滚动平滑

    转自 https://www.zhangxinxu.com/wordpress/2018/10/scroll-behavior-scrollintoview-%E5%B9%B3%E6%BB%91%E6 ...

  7. P1582 倒水

    传送门 思路: 类似于 袁绍的刁难 , 一道二进制的模拟题. 先将:将原先的瓶子数 n 转换成二进制,二进制中 1 的个数就是合并后剩下的瓶子个数 . 主要利用树状数组的 lowbit 函数: inl ...

  8. allure--下的各装饰器的翻译及自己的总结

    翻译图-快捷键 红色字体感觉用的会比较多,起码现在感觉应该是比其他的多一点 lable应该没有什么特殊的用法,只是对下面方法的一个汇总(或者可以这么说,下面的方法是lable更具体的实现) sever ...

  9. prometheus监控示例

    prometheus架构图 prometheus 各组件介绍 Prometheus Server: 使用pull方式采集监控数据,在该组件上配置监控数据的采集和告警规则. Client Library ...

  10. git add * 提示warning: LF will be replaced by CRLF in 解决办法

    在使用git的时候,每次执行 $ git add * 都会提示这样一个警告消息: 虽然说没有什么影响吧. 不过就是觉得太碍眼了, 按照这样设置就没有问题了: git config core.autoc ...