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中的hypot()方法使用简介
May 18 Python
python使用Apriori算法进行关联性解析
Dec 21 Python
Python线性回归实战分析
Feb 01 Python
Python 实现异步调用函数的示例讲解
Oct 14 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
使用python远程操作linux过程解析
Dec 04 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
python获取系统内存占用信息的实例方法
Jul 17 Python
Python urllib3软件包的使用说明
Nov 18 Python
django上传文件的三种方式
Apr 29 Python
Python Pandas知识点之缺失值处理详解
May 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 网页过期时间的控制代码
2009/06/29 PHP
逆序二维数组插入一元素的php代码
2012/06/08 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
微信小程序之左右布局的实现代码
2019/12/13 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
深入理解python函数递归和生成器
2016/06/06 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
Python实现的快速排序算法详解
2017/08/01 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
python list格式数据excel导出方法
2018/10/31 Python
python读取文件名并改名字的实例
2019/01/07 Python
Python和Go语言的区别总结
2019/02/20 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
别名指示符是什么
2012/10/08 面试题
母亲节演讲稿范文
2014/01/02 职场文书
活动总结怎么写
2014/04/28 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
公司授权委托书范文
2014/09/21 职场文书
2014年人大工作总结
2014/12/10 职场文书
2016银行求职自荐信
2016/01/28 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python
Python入门之使用pandas分析excel数据
2021/05/12 Python
vue2实现provide inject传递响应式
2021/05/21 Vue.js