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如何获取系统iops示例代码
Sep 06 Python
Python编程实现的简单Web服务器示例
Jun 22 Python
python实现逆序输出一个数字的示例讲解
Jun 25 Python
使用CodeMirror实现Python3在线编辑器的示例代码
Jan 14 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Django 限制访问频率的思路详解
Dec 24 Python
Python CategoricalDtype自定义排序实现原理解析
Sep 11 Python
Python 操作 MySQL数据库
Sep 18 Python
python工具——Mimesis的简单使用教程
Jan 16 Python
2021年最新用于图像处理的Python库总结
Jun 15 Python
Python3.8官网文档之类的基础语法阅读
Sep 04 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编译安装时常见错误解决办法
2015/05/28 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
Javascript 面向对象 重载
2010/05/13 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
jQuery实现发送验证码并60秒倒计时功能
2016/11/25 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
Python实现简单的可逆加密程序实例
2015/03/05 Python
Python计算三角函数之asin()方法的使用
2015/05/15 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
PyCharm在win10的64位系统安装实例
2017/11/26 Python
python创造虚拟环境方法总结
2019/03/04 Python
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
父亲生日宴会答谢词
2014/01/10 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
初中优秀教师事迹材料
2014/08/18 职场文书
2015中学政教处工作总结
2015/07/22 职场文书