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内置函数之filter map reduce介绍
Nov 30 Python
Python 字典与字符串的互转实例
Jan 13 Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 Python
对Python 除法负数取商的取整方式详解
Dec 12 Python
Python设计模式之抽象工厂模式原理与用法详解
Jan 15 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
Mac 使用python3的matplot画图不显示的解决
Nov 23 Python
Python使用pdb调试代码的技巧
May 03 Python
python随机模块random的22种函数(小结)
May 15 Python
在CentOS7下安装Python3教程解析
Jul 09 Python
Django中的JWT身份验证的实现
May 07 Python
Python sklearn分类决策树方法详解
Sep 23 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
中国广播史趣谈 — 几个历史第一次
2021/03/01 无线电
关于php fread()使用技巧
2010/01/22 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
100行python代码实现跳一跳辅助程序
2018/01/15 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
如何定义TensorFlow输入节点
2020/01/23 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
python实现二分查找算法
2020/09/18 Python
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
土木工程毕业生自荐信
2013/09/21 职场文书
高中毕业自我鉴定
2013/12/16 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
军人离婚协议书样本
2014/10/21 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
小学母亲节活动总结
2015/02/10 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
漫画「狩龙人拉格纳」公开TV动画预告图
2022/03/22 日漫
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers