python爬虫实现获取下一页代码


Posted in Python onMarch 13, 2020

我们首先来看下实例代码:

from time import sleep

import faker
import requests
from lxml import etree

fake = faker.Faker()

base_url = "http://angelimg.spbeen.com"

def get_next_link(url):
  content = downloadHtml(url)
  html = etree.HTML(content)
  next_url = html.xpath("//a[@class='ch next']/@href")
  if next_url:
    return base_url + next_url[0]
  else:
    return False

def downloadHtml(ur):
  user_agent = fake.user_agent()
  headers = {'User-Agent': user_agent,"Referer":"http://angelimg.spbeen.com/"}
  response = requests.get(url, headers=headers)
  return response.text

def getImgUrl(content):
  html = etree.HTML(content)
  img_url = html.xpath('//*[@id="content"]/a/img/@src')
  title = html.xpath(".//div['@class=article']/h2/text()")

  return img_url[0],title[0]

def saveImg(title,img_url):
  if img_url is not None and title is not None:
    with open("txt/"+str(title)+".jpg",'wb') as f:
      user_agent = fake.user_agent()
      headers = {'User-Agent': user_agent,"Referer":"http://angelimg.spbeen.com/"}
      content = requests.get(img_url, headers=headers)
      #request_view(content)
      f.write(content.content)
      f.close()

def request_view(response):
  import webbrowser
  request_url = response.url
  base_url = '<head><base href="%s" rel="external nofollow" >' %(request_url)
  base_url = base_url.encode()
  content = response.content.replace(b"<head>",base_url)
  tem_html = open('tmp.html','wb')
  tem_html.write(content)
  tem_html.close()
  webbrowser.open_new_tab('tmp.html')

def crawl_img(url):
  content = downloadHtml(url)
  res = getImgUrl(content)
  title = res[1]
  img_url = res[0]
  saveImg(title,img_url)

if __name__ == "__main__":
  url = "http://angelimg.spbeen.com/ang/4968/1"

  while url:
    print(url)
    crawl_img(url)
    url = get_next_link(url)

python 爬虫如何执行自动下一页循环加载文字

from bs4 import BeautifulSoup
import requests
import time
from lxml import etree
import os
# 该demo执行的为如何利用bs去爬一些文字
def start():
  # 发起网络请求
  html=requests.get('http://www.baidu.com')
  #编码
  html.encoding=html.apparent_encoding
  #创建sp
  soup=BeautifulSoup(html.text,'html.parser')
  print(type(soup))
  print('打印元素')
  print(soup.prettify())
  #存储一下title 该方法没有提示直接展示
  title=soup.head.title.string
  print(title)
#   写入文本
  with open(r'C:/Users/a/Desktop/a.txt','w') as f:
    f.write(title)
  print(time.localtime())
 
url_2 = 'http://news.gdzjdaily.com.cn/zjxw/politics/sz_4.shtml'
def get_html_from_bs4(url):
 
  # response = requests.get(url,headers=data,proxies=ip).content.decode('utf-8')
  response = requests.get(url).content.decode('utf-8')
  soup = BeautifulSoup(response, 'html.parser')
  next_page = soup.select('#displaypagenum a:nth-of-type(9)')[0].get('href')
  # for i in nett
  print(next_page)
  next2='http://news.gdzjdaily.com.cn/zjxw/politics/'+next_page
 
 
def get_html_from_etree(url):
 
  response = requests.get(url).content.decode('utf-8')
  html= etree.HTML(response)
 
  next_page = html.xpath('.//a[@class="PageNum"][8]/@href')[0]
  print(next_page)
  # next2='http://news.gdzjdaily.com.cn/zjxw/politics/'+next_page
 
 
get_html_from_etree(url_2)
 
if __name__ == '__main__':
  start()

到此这篇关于python爬虫实现获取下一页代码的文章就介绍到这了,更多相关python爬虫获取下一页内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python简单日志处理类分享
Feb 14 Python
python实现将excel文件转化成CSV格式
Mar 22 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
基于python log取对数详解
Jun 08 Python
Python中Numpy mat的使用详解
May 24 Python
Python datetime包函数简单介绍
Aug 28 Python
windows下Python安装、使用教程和Notepad++的使用教程
Oct 06 Python
Python使用py2neo操作图数据库neo4j的方法详解
Jan 13 Python
python程序输出无内容的解决方式
Apr 09 Python
Python Tornado核心及相关原理详解
Jun 24 Python
Python 绘制可视化折线图
Jul 22 Python
Python远程linux执行命令实现
Nov 11 Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 #Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 #Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
Mar 13 #Python
详解用Python进行时间序列预测的7种方法
Mar 13 #Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
Mar 13 #Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 #Python
Django choices下拉列表绑定实例
Mar 13 #Python
You might like
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
JS+Canvas绘制时钟效果
2020/08/20 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
一个SQL面试题
2014/08/21 面试题
六月份红领巾广播稿
2014/02/03 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
五水共治一句话承诺
2014/05/30 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang
bose降噪耳机音能消除人声吗
2022/04/19 数码科技
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS