学习爬虫的day01

窃语 窃语     2022-09-27     632

关键词:

反扒

1.浏览器伪装
加一个协议头(即浏览器的协议头)

火狐的浏览器协议头=‘User-Agent‘:‘Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6‘

 

headers={‘User-Agent‘:‘Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6‘};
url="http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8C%97%E4%BA%AC&kw=python&sm=0&p=1";

req_timeout=5;
req=Request(url=url,headers=headers)
f=urlopen(req,None,req_timeout)
爬虫中 空格,换行也算

2.三种方式爬取数据

#正则提取

d=re.findall(‘<a style="font-weight: bold" par="(.*)" href="(.*)" target="_blank">(.*)</a>‘,str(s));
print(d);
问题:无法处理换行问题,查找后乱码

#beautifulsoup提取

# soup=BeautifulSoup(s,‘html.parser‘);
# aList=soup.find_all("tr")
# for items in aList:
# # print(items);
# aList1=items.find_all("a")
# for item1 in aList1:
# print(item1.get(‘href‘));# a 下的所有href属性
# print(item1.get_text());# 所有标签包含的内容
# break;#处理一列的数据‘
  问题:有未知的JavaScript脚本

#lxml提取

selector=etree.HTML(s);
links=selector.xpath(‘//tr/td[@class="zwmc"]/div/a/@href|//tr/td[@class="zwmc"]/div/a/text()‘);
for link in links:
print(link);
完整代码:
# 1.浏览器伪装
# 加一个协议头(即浏览器的协议头)
#添加模拟浏览器协议头
from urllib.request import Request
from urllib.request import urlopen
from lxml import etree
from bs4 import BeautifulSoup
import re;
headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6‘}
url = "http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E5%8C%97%E4%BA%AC&kw=python&sm=0&p=1"
req_timeout=5;
req=Request(url=url,headers=headers);
f=urlopen(req,None,req_timeout);
s=f.read();
#正则提取
# d=re.findall(‘<a style="font-weight: bold" par="(.*)" href="(.*)" target="_blank">(.*)</a>‘,str(s));
# print(d);
#beautifulsoup提取
# soup=BeautifulSoup(s,‘html.parser‘);
# aList=soup.find_all("tr")
# for items in aList:
# # print(items);
# aList1=items.find_all("a")
# for item1 in aList1:
# print(item1.get(‘href‘));# a 下的所有href属性
# print(item1.get_text());# 所有标签包含的内容
# break;
#lxml提取
selector=etree.HTML(s);
links=selector.xpath(‘//tr/td[@class="zwmc"]/div/a/@href|//tr/td[@class="zwmc"]/div/a/text()‘);
for link in links:
print(link);

 

爬虫-day01-基础知识

‘‘‘爬虫的构成下载器:抓取页面  urllib  equests  selenium+webdriver解析器:解释并提取页面元素  BeautifulSoup4  PyQuery  Xpath  RegularExpression调度器:协调完成全部抓取任务  进程  线程  协程  分布式抓... 查看详情

day01markdown学习

Markdown的简单语法Markdown的简单语法 查看详情

爬虫day04_01(爬百度页面)

importurllib.requestimporthttp.cookiejarfromlxmlimportetreehead={‘Connection‘:‘Keep-Alive‘,‘Accept‘:‘text/html,application/xhtml+xml,*/*‘,‘Accept-Language‘:‘en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0 查看详情

struts基础开发---day01

 前言我是一个小白,今天首次学习Struts的基本内容,是看视频和看书相结合的,主要是记录这个学习的过程以及学习的过程中遇到的问题。---------------------------------------------------------------------------------------------------------------... 查看详情

spring学习-day01

<!--配置beanclass:bean的全类名,通过反射的方式在IOC的容器中创建Bean. 所以要求中必须有无参数的构造器id:标识容器中的bean.id是唯一的--><!--使用setter方法进行属性注入--><beanid="helloWorld"class="com.atguigu.spring.beans.HelloWor... 查看详情

java基础学习笔记day01

      java基础学习笔记day011.软件开发:  软件:按照特定顺序组织的计算机数据和指令的集合  开发:软件的制作过程  软件开发:借助开发工具和计算机语言制作软件2.java概述:  java之父:詹姆斯·高斯林 ... 查看详情

java学习笔记day_01

Java学习笔记(复习整理)虽然不知道该怎么写,但是不起步就永远不知道该怎么做。.刚开始可能会写的很差劲,但会一点一点变好的。本笔记是以我按照传智播客的视频和Java核心思想来学习,前面的基础部分主要是用于个人的... 查看详情

structs2学习-day01

要求:完成JavaWeb项目开发环境的安装:JDK的安装Tomcat的安装MyEclipse的安装(包括MyEclipse用激活工具激活)在MyEclipse中配置Tomcat、配置Tomcat的JDK、测试MyEclipse中配置的Tomcat是否配置成功安装mysql的服务器端、安装mysql的图形用户界面... 查看详情

react学习day01(代码片段)

文章目录React学习一、Reacte二、JSX三、显示数据调用函数四、虚拟DOM和diff算法五、函数组件六、调动组件传值(props)七、组件状态(State)八、事件this指向九、事件传参问题小总结组件的数据形式propsstate组件的... 查看详情

react学习day01(代码片段)

文章目录React学习一、Reacte二、JSX三、显示数据调用函数四、虚拟DOM和diff算法五、函数组件六、调动组件传值(props)七、组件状态(State)八、事件this指向九、事件传参问题小总结组件的数据形式propsstate组件的... 查看详情

动手学深度学习diveintodeeplearning--day01--学习资料环境配置

正式开始《动手学深度学习v2-从零开始介绍深度学习算法和代码实现》的学习惊诧于李沐老师2021年的视频里就已经提到DALL·E2、ChatGPT等相关的内容了闲话休叙,先贴一下学习资料链接:课程主页:OpenLearningCamp-《动手学深度学习... 查看详情

go分布式爬虫学习

...、服务注册、负载均衡拜占庭将军问题「此文章为3月Day6学习笔记,内容来源于极客时间《Go分布式爬虫实战》,强烈推荐该课程!/推荐该课程」 查看详情

ubuntu(16.04.01)学习-day2

1。建立硬链接:lnmain.cmainsoft2.建立软链接:ln-smain.csoft3.对文档进行统计wcmain.c返回行、单词数和字符数4.查看相应命令的描述  whatispython5.查看程序位置  whichpython6.查找二进制文件、源和命令的手册页文件。  whereispython7.... 查看详情

java基础语法学习day01---初学者必看详解(代码片段)

java基础语法学习day01---初学者必看详解1.初识java1)什么是java1.1)计算机语言1.2)高级的1.3)编程2)编写第一个java程序2.1)创建java项目2.2)创建package包2.3)创建Class类2.4)编写程序并运行3)调整字体3.1)菜单栏选中3.2)左上角搜索font3.3)右侧展... 查看详情

springcloud学习笔记day01(代码片段)

1.技术要求:java8+mven+git、github+Nginx+RabbitMQ+SpringBoot2.02.JVM/JUC/JMM/GC/Nginx……2.微服务架构理论入门2.1.微服务架构概述什么是微服务?微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服... 查看详情

springcloud学习笔记day01(代码片段)

1.技术要求:java8+mven+git、github+Nginx+RabbitMQ+SpringBoot2.02.JVM/JUC/JMM/GC/Nginx……2.微服务架构理论入门2.1.微服务架构概述什么是微服务?微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服... 查看详情

小白艰苦学习之路(记录学习历程——html篇)day8(代码片段)

...ay7是Java简单算法练习,就不放上来啦。我更改了一下学习路线,所以以后的博客内容将会是HTML和Java的穿插学习!大家一起加油哦!Day8(HTML基础)初始HTML什么是HTMLHTML发展史HTML5的优势W3C标准常见的IDE这... 查看详情

小白艰苦学习之路(记录学习历程——html篇)day8(代码片段)

...ay7是Java简单算法练习,就不放上来啦。我更改了一下学习路线,所以以后的博客内容将会是HTML和Java的穿插学习!大家一起加油哦!Day8(HTML基础)初始HTML什么是HTMLHTML发展史HTML5的优势W3C标准常见的IDE这... 查看详情