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时间戳与时间字符串互相转换实例代码
Nov 28 Python
Python爬虫框架Scrapy安装使用步骤
Apr 01 Python
探究数组排序提升Python程序的循环的运行效率的原因
Apr 01 Python
Python中tell()方法的使用详解
May 24 Python
python文件操作相关知识点总结整理
Feb 22 Python
详解Python的Twisted框架中reactor事件管理器的用法
May 25 Python
Python通过RabbitMQ服务器实现交换机功能的实例教程
Jun 29 Python
python中验证码连通域分割的方法详解
Jun 04 Python
django rest framework 数据的查找、过滤、排序的示例
Jun 25 Python
python实现图片压缩代码实例
Aug 12 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
pytorch 使用半精度模型部署的操作
May 24 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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
php自动注册登录验证机制实现代码
2011/12/20 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
javascript操作cookie
2017/01/17 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
利用JS制作万年历的方法
2017/08/16 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
python 自动提交和抓取网页
2009/07/13 Python
Python下载指定页面上图片的方法
2016/05/12 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
运行Python编写的程序方法实例
2020/10/21 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
汽车销售求职自荐信
2013/10/01 职场文书
公司新年寄语
2014/04/04 职场文书
团拜会策划方案
2014/06/07 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
经营场所使用证明
2015/06/19 职场文书
农村老人去世追悼词
2015/06/23 职场文书