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 相关文章推荐
Web服务器框架 Tornado简介
Jul 16 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
Aug 02 Python
python try except 捕获所有异常的实例
Oct 18 Python
用pycharm开发django项目示例代码
Oct 24 Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 Python
Tensorflow模型实现预测或识别单张图片
Jul 19 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
Python调用钉钉自定义机器人的实现
Jan 03 Python
使用python绘制cdf的多种实现方法
Feb 25 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
Jun 27 Python
python 实现体质指数BMI计算
May 26 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
Terran热键控制
2020/03/14 星际争霸
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
alixixi runcode.asp的代码不错的应用
2007/08/08 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
JavaScript实现找质数代码分享
2015/03/24 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
socket在egg中的使用实例代码详解
2019/05/30 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
python实现图片插入文字
2019/11/26 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
自我鉴定思想方面
2013/10/07 职场文书
高中生毕业学习总结的自我评价
2013/11/14 职场文书
运动会广播稿50字
2014/01/26 职场文书
盗窃案辩护词
2015/05/21 职场文书
甲午大海战观后感
2015/06/02 职场文书
关于童年的读书笔记
2015/06/26 职场文书
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技