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文件比较示例分享
Jan 10 Python
Python列表(list)常用操作方法小结
Feb 02 Python
Python实现的字典值比较功能示例
Jan 08 Python
python中实现将多个print输出合成一个数组
Apr 19 Python
远程部署工具Fabric详解(支持Python3)
Jul 04 Python
python django生成迁移文件的实例
Aug 31 Python
python groupby 函数 as_index详解
Dec 16 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 Python
python写文件时覆盖原来的实例方法
Jul 22 Python
详解python polyscope库的安装和例程
Nov 13 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 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
关于时间计算的结总
2006/12/06 PHP
php array_flip() 删除数组重复元素
2009/01/14 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
深入密码加salt原理的分析
2013/06/06 PHP
preg_match_all使用心得分享
2014/01/31 PHP
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
浅析python继承与多重继承
2018/09/13 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
HTML5的结构和语义(3):语义性的块级元素
2008/10/17 HTML / CSS
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
推广普通话标语
2014/06/27 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
建筑工程催款函
2015/06/24 职场文书
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS