Python中文
首页
教程
问答
标签
搜索
登录
注册
使用Scrapy用单个蜘蛛抓取多个网站
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在使用Scrapy从<a href="http://jobs.placementindia.com/lucknow" rel="nofollow">this website</a>中获取数据。下面是蜘蛛的代码。在</p> <pre><code>class StackItem(scrapy.Item): def __setitem__(self, key, value): if key not in self.fields: self.fields[key] = scrapy.Field() self._values[key] = value class betaSpider(CrawlSpider): name = "betaSpider" def __init__(self, *args, **kwargs): super(betaSpider, self).__init__(*args, **kwargs) self.start_urls = [kwargs.get('start_url')] rules = (Rule (LinkExtractor(unique=True, allow=('.*\?id1=.*',),restrict_xpaths=('//a[@class="prevNext next"]',)), callback="parse_items", follow= True),) def parse_items(self, response): hxs = HtmlXPathSelector(response) posts = hxs.select("//article[@class='classified']") items = [] for post in posts: item = StackItem() item["job_role"] = post.select("div[@class='uu mb2px']/a/strong/text()").extract() item["company"] = post.select("p[1]/text()").extract() item["location"] = post.select("p[@class='mb5px b red']/text()").extract() item["desc"] = post.select("details[@class='aj mb10px']/text()").extract() item["read_more"] = post.select("div[@class='uu mb2px']/a/@href").extract() items.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(item) for item in items: yield item </code></pre> <p>以下是物料管道的代码:</p> ^{pr2}$ <p>这个很好用。现在,我必须使用相同的蜘蛛抓取以下网站(例如)。在</p> <ol> <li><a href="http://www.freejobalert.com/government-jobs/" rel="nofollow">http://www.freejobalert.com/government-jobs/</a></li> <li><a href="https://www.sarkariexaam.com/" rel="nofollow">https://www.sarkariexaam.com/</a></li> </ol> <p>我必须刮去上述网站的所有标签,使用项目管道将其存储到CSV文件中。在</p> <p>实际上,被废弃的网站名单是无穷无尽的。在这个项目中,用户将输入url并将废弃的结果返回给该用户。所以,我想要一个通用蜘蛛,可以刮任何网站。在</p> <p>对于一个单一的网站来说,它运行良好。但是,对于结构不同的多个站点,如何实现呢? 破破烂烂的够解决吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>不同的spider会更好你可以使用API从脚本运行Scrapy,而不是运行Scrapy crawl的典型方式记住Scrapy是建立在Twisted异步网络库之上的,所以你需要在Twisted reactor中运行它。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
plt.savefig不会覆盖现有文件
10 回答
plt.savefig不保存图像
9 回答
plt.savefig在jupyter笔记本中不起作用
2 回答
plt.savefig在从另一个fi调用时停止工作
5 回答
plt.savefig在调用plt.show之前保存空数字
6 回答
plt.save不创建png文件
6 回答
plt.scatter overlay分类数据帧列
3 回答
Plt.Scatter:如何添加title、xlabel和ylab
6 回答
plt.scatter()绘图与Matplotlib中的plt.plot()绘图类似
4 回答
plt.scatter错误'NoneType'对象在成功运行后没有属性'sqrt'
2 回答
plt.set_title()中的标题字符串有误
8 回答
plt.show()
6 回答
plt.show()不在Jupyter笔记本上渲染任何内容
2 回答
plt.show()不打印plt.plot only plt.scatter
5 回答
plt.show()不显示三维散射图像
1 回答
plt.show()不显示任何内容
2 回答
plt.show()不显示数据,而是保留它供下一个图表使用(spyder)
2 回答
plt.show()使终端挂起
4 回答
plt.show()无法使用此代码
4 回答
plt.show()没有打开新的图形风
4 回答