这个爬虫是个通用爬虫,去用心的了解scrapy框架,你就能轻松驾驭
https://github.com/a371057600/python-pachong-
这里是我的不专业的github,不逼逼直接搬来用吧,不推荐重复造轮子,对着代码多读几次就好,除非练手,不然不推荐重新敲,当然,能优化,改到你想要的功能是最好的.
把轮子用到了爬头条上面
我觉得,在头条上面教大家爬头条好像不是太好(虽然,头条也是爬别人的新闻)
头条的反爬方法基本跟微博也是一样,但是不推荐爬微博,因为微博大量的账号和原创内容,估计不登录也不能爬,登陆了就会废号.
本来,计划是爬淘宝的,但是无论怎么爬都会重定向到登录页面,用selemui也没用(实际有用,你只要在爬取的时候登录成为操作就好,但是这就类麻烦了.毕竟淘宝账号很重要的…)所以,最后折中爬了简书,谢谢简书爸爸的教导.
图片描述(最多50字)
from scrapy import signals
from selenium import webdriver
import time
from scrapy.http.response.html import htmlresponse
class seleniumdownloadmiddleware(object):
def init(self):
self.driver = webdriver.chrome(executable_path=r\”c:workpythonchromedriver.exe\”)
def process_request(self,request,spider):
self.driver.get(request.url)
time.sleep(1)
try:
while true:
showmore = self.driver.find_element_by_class_name(\’show-more\’)
showmore.click()
time.sleep(0.3)
if not showmore:
break
except:
pass
source = self.driver.page_source
response = htmlresponse(url=self.driver.current_url,body=source,request=request,encoding=\’utf-8\’)
return responsege
大的门户网站你可以爬,爬了之后记得告诉我
获取ajax数据的方式:
直接分析ajax调用的接口。然后通过代码请求这个接口。
使用selenium chromedriver模拟浏览器行为获取数据。
方式优点缺点分析接口直接可以请求到数据。不需要做一些解析工作。代码量少,性能高。分析接口比较复杂,特别是一些通过js混淆的接口,要有一定的js功底。容易被发现是爬虫。
图片描述(最多50字)
selenium直接模拟浏览器的行为。浏览器能请求到的,使用selenium也能请求到。爬虫更稳定。代码量多。性能低。
ps:本人全部自学,发送到头条也只是作为学习经历,顺便分享经验,没有炫耀和装大佬的意向,反而有互相学习寻求帮助的想法.
医生对病人说,你们有选择不痛苦的权利.但是,各位自学的哥们,我们没有选择的权利,学习的过程必然是艰辛痛苦的,程序猿996不是为了谁,真的是因为喜欢,真的是想要进步所以才会996.死在自己喜欢的工作上何尝不是钟享受呢.
不求认同,但是不希望喷子进来,这只是个笔记.
ag凯发k8国际的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。