python爬虫,爬取58同城数据
本帖最后由 牵手丶若相惜 于 2019-11-27 19:32 编辑仅限学习!仅限学习!!仅限学习!!!
为了爬虫不影响别人的服务器我每爬取一页等待了3秒 这是必要的
评分!!!评分!!!评分!!!谢谢{:301_975:}
——————————————————————
有个帖子 被人说发现了错误 才发现【i】会被转义
发帖有的地方被转义成了字体 divs1【i】
现在我把divs1【i】改成了divs1
(只能用中文的中括号 来告诉你们那里错了 不然还会被转义)
——————————————————————
没什么反爬机制 比较简单
爬取的是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 != "广告":
fp.write(divs1+",")
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
太感谢了,正需要这个呢。谢谢! z1mu 发表于 2019-11-25 10:50
爬虫违法的……
爬虫违不违法,主要看爬取的内容及用途,目前爬取个人私密信息用于商业用途是违法的,比如51信用卡案件,一般正常爬取网上公布的非个人信息,不构成犯罪,详细你可以看下2019年5月份网信办发布的 数据管理办法征集稿。 感谢楼主的分享 学习一下思路,感谢分享 谢谢分享 学习大佬 软件发布出来就好了 爬邮箱呢 感谢分享,辛苦了 虽然不需要 还是谢谢楼主分享我也在学习爬虫就是想爬58用户数据 我是做招商的