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来从differet获取数据网站。那可以通过添加网站一个接一个到蜘蛛和通用代码。在</p> <p>如果网站完全不同,这将是非常庞大的代码。从您的要求,我们可以概括的代码,并作出蜘蛛,提供上述细节,如果任何网站是给定的。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
plt.savefig不会覆盖现有文件
6 回答
plt.savefig不保存图像
1 回答
plt.savefig在jupyter笔记本中不起作用
9 回答
plt.savefig在从另一个fi调用时停止工作
6 回答
plt.savefig在调用plt.show之前保存空数字
1 回答
plt.save不创建png文件
1 回答
plt.scatter overlay分类数据帧列
7 回答
Plt.Scatter:如何添加title、xlabel和ylab
9 回答
plt.scatter()绘图与Matplotlib中的plt.plot()绘图类似
8 回答
plt.scatter错误'NoneType'对象在成功运行后没有属性'sqrt'
4 回答
plt.set_title()中的标题字符串有误
3 回答
plt.show()
10 回答
plt.show()不在Jupyter笔记本上渲染任何内容
9 回答
plt.show()不打印plt.plot only plt.scatter
6 回答
plt.show()不显示三维散射图像
9 回答
plt.show()不显示任何内容
3 回答
plt.show()不显示数据,而是保留它供下一个图表使用(spyder)
6 回答
plt.show()使终端挂起
4 回答
plt.show()无法使用此代码
8 回答
plt.show()没有打开新的图形风
6 回答