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开发vim插件及心得分享
Nov 04 Python
python中list列表的高级函数
May 17 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
Jul 24 Python
解读! Python在人工智能中的作用
Nov 14 Python
Python装饰器用法实例总结
Feb 07 Python
python实现自主查询实时天气
Jun 22 Python
Python pip配置国内源的方法
Feb 14 Python
Python多线程thread及模块使用实例
Apr 28 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
详解python内置模块urllib
Sep 09 Python
详解python字符串驻留技术
May 21 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
PHP会员找回密码功能的简单实现
2016/09/05 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
GreyBox技术总结(转)
2010/11/23 Javascript
jQuery的12招常用技巧分享
2011/08/08 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
2015/03/16 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
python更改已存在excel文件的方法
2018/05/03 Python
利用python如何处理nc数据详解
2018/05/23 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
智能钱包:Ekster
2019/11/21 全球购物
SQL SERVER面试资料
2013/03/30 面试题
优秀毕业大学生推荐信
2013/11/13 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
单位活动策划方案
2014/08/17 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
单位考核聘任报告
2015/03/02 职场文书