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中删除文件的程序代码
Mar 13 Python
Python实现Linux下守护进程的编写方法
Aug 22 Python
python如何查看系统网络流量的信息
Sep 12 Python
Python 闭包的使用方法
Sep 07 Python
Python3中的列表生成式、生成器与迭代器实例详解
Jun 11 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
Pycharm以root权限运行脚本的方法
Jan 19 Python
Python Numpy库datetime类型的处理详解
Jul 13 Python
django云端留言板实例详解
Jul 22 Python
关于Flask项目无法使用公网IP访问的解决方式
Nov 19 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
May 11 Python
Python异常类型以及处理方法汇总
Jun 05 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中的正则表达式以及模式匹配
2013/06/19 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
Smarty模板配置实例简析
2019/07/20 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
React中jquery引用的实现方法
2017/09/12 jQuery
swiper自定义分页器使用方法详解
2020/09/14 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
vue实现计算器功能
2020/02/22 Javascript
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
Python实现的科学计算器功能示例
2017/08/04 Python
python获取txt文件词向量过程详解
2019/07/05 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
python 安装移动复制第三方库操作
2020/07/13 Python
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
《火烧云》教学反思
2014/04/12 职场文书
2014年接待工作总结
2014/11/26 职场文书
工作保证书
2015/01/17 职场文书
2015年测量员工作总结
2015/05/23 职场文书
获奖感言一句话
2015/07/31 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python