本文来源吾爱破解论坛
本帖最后由 牵手丶若相惜 于 2019-11-27 19:32 编辑
捕获.PNG
(241.81 KB, 下载次数: 7)
下载附件
保存到相册
2019-11-24 15:14 上传
爬取的数据
捕获1.PNG
(102.62 KB, 下载次数: 2)
下载附件
保存到相册
2019-11-24 14:37 上传
页数
捕获2.PNG
(43.37 KB, 下载次数: 1)
下载附件
保存到相册
2019-11-24 14:43 上传
这就是为什么把判断广告的原因
仅限学习!仅限学习!!仅限学习!!!
为了爬虫不影响别人的服务器 我每爬取一页等待了3秒 这是必要的
评分!!!评分!!!评分!!!谢谢
——————————————————————
有个帖子 被人说发现了错误 才发现【i】会被转义
发帖有的地方被转义成了字体 divs1【i】
现在我把divs1【i】改成了divs1[x]
(只能用中文的中括号 来告诉你们那里错了 不然还会被转义)
——————————————————————
没什么反爬机制 比较简单
爬取的是58同城的小时工的数据,因为小时工的数据比较多
我就爬取了70页,具体小时工的数据多少页不知道
虽然上面只显示了70页,但是你可以通过在地址上添加页数来超过70页 具体的看下面的图片
数据重不重复我不知道,因为每次刷新数据都不同
一定要在headers里面添加上referer 不然爬几页过后,后面的都是空的 不知道是反爬机制 还是正则表达式的问题
具体的没实验 因为我最开始用的是正则来匹配的数据 后面发现太乱,而且有空数据 又改为BeautifulSoup来匹配的
在Title_get函数里有一句判断字符是否是广告,原因在图里
异常处理你加不加都可以 但是我第二次爬取的时候 报了一个异常 但是后面没再报 想想还是加上
代码如下:
import requests
import time
from bs4 import BeautifulSoup
# 浏览器代{过}{滤}理
headers = {
"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36",
"referer": "https://sz.58.com/job/pn1/?key=%E5%B0%8F%E6%97%B6%E5%B7%A5&cmcskey=%E5%B0%8F%E6%97%B6%E5%B7%A5&final=1&jump=1&specialtype=gls&classpolicy=main_A,job_A&ClickID=1"
}
# 网页后缀
parameters = {
"key": "%E5%B0%8F%E6%97%B6%E5%B7%A5",
"cmcskey": "%E5%B0%8F%E6%97%B6%E5%B7%A5",
"final": "1",
"jump": "1",
"specialtype": "gls",
"classpolicy": "main_A,job_A",
"ClickID": "1"
}
# 筛选内容
def Title_get(li):
divs1 = list(li.find("div", class_="item_con job_title").stripped_strings)
with open("d:/58小时工.txt","a") as fp:
fp.write(("标题:"+divs1[0]+divs1[1]+divs1[2]+"\t"))
fp.write(("工资:"+divs1[3]+divs1[4]+"\t"))
fp.write("待遇:")
for x in range(5,len(divs1)):
# 判断字符串里是否有"广告"
if divs1[x] != "广告":
fp.write(divs1[x]+",")
fp.write("\n")
if __name__ == '__main__':
# 页码
for i in range(1,71):
if i >=2:
headers["referer"] = "https://sz.58.com/job/pn"+str(i-1)+"/?key=%E5%B0%8F%E6%97%B6%E5%B7%A5&cmcskey=%E5%B0%8F%E6%97%B6%E5%B7%A5&final=1&jump=1&specialtype=gls&classpolicy=main_A,job_A&ClickID=1"
# 异常处理
try:
data = requests.get("https://sz.58.com/job/pn1" , headers=headers, params=parameters).text
soup = BeautifulSoup(data, "html5lib")
lis = soup.find_all("li",class_="job_item clearfix")
for li in lis:
Title_get(li)
# 每爬取一页 等待3秒
time.sleep(3)
except:
continue
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 网易云音乐评论爬虫
- 下一篇: 喜马拉雅FM专辑下载器3.0 beta