爬虫获取页面源码

 通过url获取网页源码,我们一般分为这几种情况

1.直接获取

网页是静态网页,直接使用

public static string HttpPost(string url, string paraJsonStr)
        {
            WebClient webClient = new WebClient();
            webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
            byte[] postData = System.Text.Encoding.UTF8.GetBytes(paraJsonStr);
            byte[] responseData = webClient.UploadData(url, "POST", postData);
            string returnStr = System.Text.Encoding.UTF8.GetString(responseData);
            return returnStr;
 
        }

就可以获取网页页面的源码

2.使用上面的方法,无法获取页面,得到Request unsuccessful

Request unsuccessful. Incapsula incident ID: 89300071...

这种情况通常是因为网站有反爬虫的处理

解决办法:

2.1.请求添加Headers里面的信息

通常需要添加  “User-Agent”的值,不行的话,可以多添加几个header的属性和 值进去

常用的 “User-Agent”如下:

"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",

    "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",

    "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",

    "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",

    "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",

    "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",

    "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",

    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36 Edg/101.0.1210.39",

    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.81 Safari/537.36 Edg/104.0.1293.54"

例如:

public static string HttpPost(string url, string paraJsonStr = "")
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);         
            request.Headers["User-Agent"] = "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.81 Mobile Safari/537.36 Edg/104.0.1293.54";
            request.Headers["Cookie"] = "visid_incap_161858=BlNpjA+qS9ucNza1";
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream responseStream = response.GetResponseStream();
            StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
            string str = streamReader.ReadToEnd();
            return str;
        }

2.2.在访问页面时加上时间间隔

3.无法获取到页面源代码,获取到的源代码不全,只有基本的框架

在Response中无法获取到完整的页面源代码,跟element的元素不同。这种情况使用Selenium插件的办法

import re
import time
import json
import random
from turtle import pd
from xml.dom.minidom import Element
import requests
import csv
from selenium import webdriver
# from selenium.webdriver.chrome.options import Options
from selenium.webdriver.edge.options import Options
from time import strftime, localtime

#path to webdriver
//需要下载浏览器的driver,括号里面式msedgedriver.exe的下载地址
    driver = webdriver.Edge(executable_path = "C:\\...\\msedgedriver.exe")
//加载时窗口的大小
    driver.maximize_window()
//url时加载时的网址,获取信息的具体网页的地址
    driver.get(url)
    #The sleep time is the time for the web page to dynamically obtain information. Depending on the speed of the network, different adjustments can be made.
    time.sleep(10)
//网页自动往下滑动的大小    
    driver.execute_script("window.scrollBy(0,{})".format(1500)) 
    time.sleep(2)
    #The page has a button, click to get the information of the whole page
    
//具体网页button的xpath路径
if(driver.find_element_by_xpath("//div[@class='articlePage_button']/span[@class='buttonText']")):
        driver.find_element_by_xpath("//div[@class='articlePage_button']/span[@class='buttonText']").click()    
    time.sleep(5) 

#Store data to file
    f=open("C:\\...\\a.csv","a+",encoding='utf-8',newline="")
    a_writer=csv.writer(f)

#parsing html information
    aText=driver.find_element_by_xpath("//h1[@class='pageTitle']").text
    print("aText:",aText)    
    a_writer.writerow(["name",aText])
#输出空行需要这样
    a_writer.writerow(["",""])


    driver.quit()

总结:

前面两种办法,都可以通过Response中查看到完整的页面代码

hellolianhua
关注 关注
  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
爬取网页源码
qq_41858657的博客
08-14 1856
以网页百度为例爬取网页源码:百度网页 1.先载入包requests import requests 2.定义表头 headers ={ "Accept":"application/json,textjavascript,*/*;q=0.01", "Accept-Language":"zh-CN,zh;q=0.9", "Content-Type":"application/x-www-form-urlencoded;charset = UTF-8", "User-Agent":"Mozilla/5.0 (
selenium 获取最新页面源代码_Selenium获取网页源码
weixin_39546092的博客
12-23 3239
写在前面Python+Selenium可以做网络爬虫。所以,我们可以从网页源码中爬出想要的信息。Selenium的page_source方法可以获取页面源码获取源码以后可以再查找自己想要的信息。源码保存为了方便查看网页源码,我们可以借用python提供的方法,将获取到的网页源码写入到html文件中。#get_source.py#www.testclass.cn#Altumnfrom sele...
网络爬虫:利用python代码爬取一个网页的代码文件和数据文件
最新发布
qq_62127918的博客
08-14 1220
利用python代码爬取一个网页的代码文件和数据文件,并且按照文件类型进行保存。
爬虫——获取页面源代码
热门推荐
日常bug
04-14 1万+
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言正文说明URL是什么Request库:get函数完整使用方法的三个参数:Response对象常用的属性:post函数完整使用方法的三个参数举例使用说明GETrequests库requests.get()简单用法url拼接封装pathurllib库POSTrequests库urllib库总结 前言 对urllib.request.urlopen()和requests.get()应用的区别 正文 提示:以下是本篇文章正文内容,.
Python爬取网页源代码(自用)
knighthood2001
04-06 984
网页源代码获取
爬虫概念与编程学习之如何爬取网页源代码(一)
weixin_34366546的博客
01-11 689
      直接,去看一个网页的源代码,这个很简单!               1、新建maven项目   2、选择代码保存位置   3、选择quickstart   4、设置Group Id和Artifact Id   5、得到新建好的maven项目        pom.xml里需要自行添加(httpclient 4.4   ...
【快速获取网页源码
weixin_63543108的博客
04-18 1615
快速获取网页源码
爬虫jsp获取网页源码
04-28
爬虫jsp获取网页源码】这一主题主要涉及网络爬虫技术在Java Server Pages (JSP)中的应用,以及如何通过前端交互获取网页源码爬虫是互联网数据挖掘的重要工具,它能够自动地遍历网页,抓取所需信息。在JSP环境下...
Java 网络爬虫获取网页源代码原理及实现
09-10
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维...传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。
爬虫软件 自动获取网站源码
06-29
它能够自动地遍历网页,读取并下载网站的HTML源代码,甚至包括JavaScript、CSS、图片和其他资源,将整个网站复刻到本地,使得用户可以在离线状态下浏览如同在线一样的静态网站。在这个过程中,爬虫技术涉及到了多个...
获取网站完整源码工具
06-20
获取网站完整源码,图片,js,css等,可以完整复制并制作网站
网页源码提取
02-01
简单的网页源码提取工具源码 .版本 2 .支持库 iconv .支持库 internet .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 .局部变量 句柄, 整数型 .局部变量 转换后的结果, 字节集 .局部变量 成功标示, 逻辑型 句柄 = 编码转换_打开 (#编码_UTF_8, #编码_GBK) 转换后的结果 = 编码转换_转换 (句柄, HTTP读文件 (编辑框2.内容), 成功标示) 编码转换_关闭 (句柄) 编辑框1.内容 = 到文本 (转换后的结果)
python爬虫代码源码.rar
02-25
由于爬虫程序是一个程序,程序运行得非常快,不会因为重复的事情而感到疲倦,因此使用爬虫程序获取大量数据变得非常简单和快速。 由于99%以上的网站是基于模板开发的,使用模板可以快速生成大量布局相同、内容不同的...
Python爬虫基础-如何获取网页源代码
独木不成林,单弦不成音。
04-21 4333
《100天精通Python》专栏,最详细的Python入门到精通教程;理论篇基础知识讲解构建体系框架、实践篇Python黑科技学以致用。https://blog.csdn.net/weixin_39032019/category_12263598.html
爬虫学习笔记-获取网页源码
2301_77321248的博客
01-23 745
获取响应的源码为字节形式,使用decode('utf-8')解码。# 'localtion':'中国台湾'#将获取源码保存为baidu.html文件。# 导入python自带包urllib。'name':'周杰伦',# 'sex':'男',#urlopen方法不能存储字典。# 模拟浏览器向服务器发送请求。# 定义要访问的地址。
爬虫小练习01—获取网站源码
小伟的博客
01-09 2476
爬虫小练习
使用python做最简单的爬虫
weixin_33966365的博客
12-09 540
使用python做最简单的爬虫 --之心 #第一种方法import urllib2 #将urllib2库引用进来response=urllib2.urlopen("http://www.baidu.com") #调用库中的方法,将请求回应封装到response对象中html=response.read() #调用response对象的read()方法,将回应字符串赋给hhtml变量print...
手写网络爬虫获取网页源代码
程序员云帆哥的博客
07-29 1134
手写网络爬虫获取网页源代码
爬虫获取网页源代码有乱码怎么解决
06-10
爬取网页源代码出现乱码的原因可能是因为网页编码与爬虫的编码不一致,可以尝试以下几种解决方法: 1. 在请求头中添加编码格式 在请求头中添加网页的编码格式,例如: ```python headers = { 'Content-Type': 'text/html;charset=utf-8' } response = requests.get(url, headers=headers) ``` 2. 使用 chardet 库自动检测编码格式 chardet 是一个 Python 库,可以自动检测文本编码格式,可以使用以下代码来自动检测网页编码格式并对其进行解码: ```python import requests import chardet response = requests.get(url) response.encoding = chardet.detect(response.content)['encoding'] html = response.text ``` 3. 手动指定解码方式 如果以上方法都无法解决乱码问题,可以手动指定解码方式,例如: ```python import requests response = requests.get(url) html = response.content.decode('gbk', 'ignore').encode('utf-8', 'ignore') ``` 以上是几种常见的解决乱码问题的方法,根据不同的情况选择不同的解决方式。
写文章

热门文章

  • 机试题笔记 5281
  • 爬虫获取页面源码 3993
  • 对用户输入数据进行校验 3643
  • 在pom.xml文件引入依赖后,发现项目结构中没有Maven Dependencies文件,但是在java Build Path中又可以找到Maven Dependencies文件 1952
  • ArtifactDescriptorException:Failed to read artifact descriptor for org.freem 1886

分类专栏

  • 正则表达式 1篇
  • Knowledeg Graph 1篇
  • c# 17篇
  • 算法机试 20篇
  • 机器学习 3篇
  • python 2篇
  • 错误 2篇
  • 人工智能 1篇
  • 工具 1篇

最新评论

  • 深度学习基础知识

    CSDN-Ada助手: 推荐 Python入门 技能树:https://edu.csdn.net/skill/python?utm_source=AI_act_python

  • 深度学习基础知识

    白话机器学习: 优质好文,博主的文章细节到位,内容干货很多,感谢博主的分享,期待博主持续带来更多好文!

  • 推荐系统相关论文阅读整理

    CSDN-Ada助手: 你好,CSDN 开始提供 #论文阅读# 的列表服务了。请看:https://blog.csdn.net/nav/advanced-technology/paper-reading 。如果你有更多需求,请来这里 https://gitcode.net/csdn/csdn-tags/-/issues/34 给我们提。

  • 机试题笔记

    qq_42875806: 你好,请问第1题答案全通过了没?

  • leetcode算法21天:第二天

    大家一起学编程(python): 这个操作秀

最新文章

  • 深度学习基础知识
  • 基于知识图谱和图卷积神经网络的应用和开发
  • 搭建gnn环境
2024年1篇
2023年7篇
2022年40篇
2021年19篇
2020年4篇
2019年24篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司丰南靠谱的网站优化有哪些福田公司的网站优化的有效方式深圳具有品牌的免费网站优化长沙网站整站优化潮州网站竞价优化服务seo网站关键词优化方动态页面对网站优化的影响柳宏网站排名优化不利因素济南瓷砖行业网站优化推广有哪些从化网站 优化宜兴网站优化找哪家广渠门网站优化宁夏怎么优化网站黄埔企业网站推广优化怎么做最好seo网站优化课程金昌靠谱的网站优化百度网站优化烟台技术上海优化网站 优帮网站优化网络推广价格曹县专业网站关键词优化价格巩义百度seo网站优化价格一个完整的网站优化方案网站排名优化服务 sit企业网站的优化目的网站内部优化的做法泸州网站优化方法江西个性网站优化排名河源专业网站优化怎么样网站怎么优化勘云速捷一流网站seo优化推广教程香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化